文件上傳oss服務器


最近接到個需求,項目文件由原來上傳至服務器本地改為上傳至阿里oss服務器中。查看了官方相關文檔后最終成功實現,在此記錄一下相關經驗。

官網文檔:https://help.aliyun.com/document_detail/84781.html?spm=a2c4g.11186623.6.707.5a0c1bd4CT02Ig

pom文件引用:

<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>2.8.3</version> </dependency>

上傳工具類:

public class AliOssUtil {

    static Logger logger = Logger.getLogger(AliOssUtil.class);

    private static String endpoint = "http://oss-cn-beijing.aliyuncs.com"; 
    private static String accessKeyId = "<yourAccessKeyId>";   private static String accessKeySecret = "<yourAccessKeySecret>";   private static String bucketName = "<yourBucketName>"; /** * 上傳公開文件至公共讀寫bucket * @author LH_Yu * @Param uploadFile 上傳文件 * @Param picturePath 上傳路徑及取出url的key */ public static String uploadOSSFree(MultipartFile uploadFile, String picturePath) throws Exception { // 創建OSSClient實例 OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret); // 上傳:picturePath + uploadFile.getOriginalFilename() --> key ossClient.putObject(bucketName, picturePath + uploadFile.getOriginalFilename(), new ByteArrayInputStream(uploadFile.getBytes())); // 關閉client ossClient.shutdown(); //設置過期時間 -- 十年 Date expiration = new Date(new Date().getTime() + 3600l * 1000 * 24 * 365 * 10); //取出文件上傳路徑 String url = ossClient.generatePresignedUrl(bucketName, picturePath + uploadFile.getOriginalFilename(), expiration).toString(); return url; } } 

關於鏈接有效時間:oss提供的bucket有三種類型:公共讀寫、公共讀、私有,私有bucket下的鏈接會有有效時間最大為64800秒,如果只是用來存儲一些無關緊要的圖片等可以將bucket屬性設置為公共讀寫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM