公共?班級?OssManage?{
公共?靜電?字符串?ACCESS_KEY_ID?=?null
公共?靜電?字符串?訪問密鑰秘密?=?null
公共?靜電?字符串?端點?=?null
公共?靜電?字符串?BUCKETNAME?=?null
公共?靜電?字符串?BUCKETNAME_VIDEO?=?null
公共?靜電?字符串?過時了?=?null
私人?OSSClient?客戶?=?null
私人?object元數據?meta?=?null
靜態{
試試?{
ACCESS_KEY_ID?=?sys const . getproperty(" OSS _ ACCESS _ KEY _ ID ");
訪問密鑰秘密?=?sys const . getproperty(" OSS _ ACCESS _ KEY _ SECRET ");
端點?=?sys const . getproperty(" OSS _ ENDPOINT ");
?BUCKETNAME?=?sys const . getproperty(" OSS _ bucket name ");
?BUCKETNAME_VIDEO?=?sys const . getproperty(" OSS _ bucket name _ VIDEO ");
?過時了?=?sys const . getproperty(" OSS _ OUT _ OF _ DATE ");
}?接住?(java.lang.Exception?e)?{
e . printstacktrace();
}
}
公共?作廢?init(){
?//?初始化OSSClient。
客戶?=?新的?OSSClient(端點,訪問密鑰ID,?訪問_密鑰_秘密);
meta?=?新的?object metadata();
}
/**
?*?@描述:?將文件上傳到OSS文件服務器
?*?@param?內容?文件流
?*?@param?該密鑰作為OSS文件服務器的唯壹標識符上傳。
?*?@param?mimeType?文件類型
?*?@throws?例外?
?*?@ ReturnType:ETag @ ReturnType:StringOSSObject。
*/
公共?字符串?uploadFile(InputStream?內容,字符串?琴鍵,琴弦?mimeType)?摔投?異常{
//初始化
init();
//?必須設置ContentLength
meta . set content type(mime type);
//?上傳對象。
羅格蒂爾。打印控制臺日誌(" * * * * * * * * * * * * * * * * * * * * * * * * * * * "?+?關鍵);
PutObjectResult?結果?=?client.putObject(BUCKETNAME,關鍵,?內容,?meta);
羅格蒂爾。printconsolog(" * * * * * * * * * * * * * *上傳圖片到oss服務器結束* * * * * * * * * * * * "?+?關鍵);
回歸?result . get etag();
}
/**
?*?@描述:?根據密鑰獲取oss服務器上的圖片地址。
?*?@param?鍵
?*?@回歸?
?*?@ReturnType:String
*/
公共?字符串?getImgURl(字符串?關鍵){
init();
約會?過期?=?新的?約會?(新?日期()。getTime()?+?integer . parse int(OUT _ OF _ DATE));?//?30?分鐘?去哪?期滿
GeneratePresignedUrlRequest?generatePresignedUrlRequest?;
if(key . starts with(" ms platform "){
generatePresignedUrlRequest?=新?GeneratePresignedUrlRequest(bucket name,關鍵);
}別的?{
generatePresignedUrlRequest?=新?GeneratePresignedUrlRequest(bucket name _ VIDEO,?關鍵);
}
generatepresignedurlrequest . set expiration(expires);
網址?網址?=?client . generatepresignedurl(generatePresignedUrlRequest);
回歸?URL . tostring();
}
/**
?*?@Description:根據key獲取oss服務器上的ipa文件地址。
?*?@param?鍵
?*?@回歸?
?*?@ReturnType:String
?*/
公共?字符串?getIpaURl(字符串?關鍵){
init();
約會?過期?=?新的?日期(新?日期()。getTime()+?10*365*24*3600*1000);
GeneratePresignedUrlRequest?generatePresignedUrlRequest?;
if(key . starts with(" ms platform "){
generatePresignedUrlRequest?=新?GeneratePresignedUrlRequest(bucket name,關鍵);
}別的?{
generatePresignedUrlRequest?=新?GeneratePresignedUrlRequest(bucket name _ VIDEO,?關鍵);
}
generatepresignedurlrequest . set expiration(expires);
網址?網址?=?client . generatepresignedurl(generatePresignedUrlRequest);
回歸?URL . tostring();
}
/**
?*?@描述:?根據密鑰獲取oss服務器上的圖片地址。
?*?@param?鍵
?*?@回歸?
?*?@ReturnType:String
*/
公共?InputStream?getObject(字符串?關鍵){
init();
OSSObject?對象?=?null
if(key . starts with(" ms platform "){
object=?client.getObject(BUCKETNAME,關鍵);
}否則{
object=?client . getobject(bucket name _ VIDEO,?關鍵);
}
object.getObjectMetadata()。get content type();
//?獲取對象的輸入流。
InputStream?objectContent?=?object . getobject content();
回歸?objectContent
}
/**
?*?@Description:刪除文件
?*?@param?鑰匙?OSS文件服務器上文件的唯壹標識。
?*?@ReturnType:void
*/
公共?作廢?deleteFile(字符串?關鍵){
init();
client.deleteObject(BUCKETNAME,關鍵);
}
/**
?*?@描述:?在斷點處將文件上傳到OSS文件服務器。
?*?@param?內容?文件流
?*?@param?該密鑰作為OSS文件服務器的唯壹標識符上傳。
?*?@param?位置?位置
*/
公共?字符串?appendObjectFile(InputStream?內容,字符串?key,int?位置,字符串?mimeType)?摔投?異常{
//初始化
init();
//?必須設置ContentLength
meta.setContentLength(位置);
meta . set content type(mime type);
meta.setCacheControl("無緩存");
meta . setcontentencoding(" utf-8 ");
//?上傳
羅格蒂爾。打印控制臺日誌(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "?+?關鍵);
AppendObjectRequest?appendObjectRequest?=?新的?AppendObjectRequest(BUCKETNAME,關鍵,?內容,?meta);
appendobjectrequest . set position(long . value of(position));
AppendObjectResult?appendObjectResult?= client . appendobject(appendObjectRequest);
羅格蒂爾。printconsolog(" * * * * * * * * * * * * * * * * * * * * * * * * * "?+?關鍵);
回歸?appendobjectresult . get next position()。toString();
}
公共?靜電?作廢?main(String[]?args)?{
OssManage?ossManage?=?新的?OSS manage();
}
}