當前位置:名人名言大全網 - 祝福短信 - 如何用javaweb在阿裏雲上傳文件到OSS?

如何用javaweb在阿裏雲上傳文件到OSS?

我前段時間正好做了壹個項目,就是用oss,普通上傳和斷點續傳,把代碼貼出來看看是不是妳需要的。

公共?班級?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();

}

}