1. 程式人生 > 實用技巧 >使用物件儲存oss實現圖片上傳

使用物件儲存oss實現圖片上傳

想要使用阿里雲物件服務oss來儲存使用者的頭像,首先要在阿里雲建立賬號開通oss服務並建立bucket,並取得accesskey等操作

具體可以在阿里雲的官方文件當中學習https://help.aliyun.com/document_detail/32011.html

寫一個demo,核心程式碼如下

@Service

public class OssServiceImpl implements OssService{

    /**
    * @Description: 頭像上傳實現類
    * @Author: 何志恆
    **/
    // 上傳檔案到oss
    @Override
    public String uploadFileAvatar(MultipartFile file) throws IOException {
        // Endpoint以杭州為例,其它Region請按實際情況填寫,工具類取值
        String endPoint = ConstantPropertiesUtils.END_POINT;
        String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;
        String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;
        String bucketName = ConstantPropertiesUtils.BUCKET_NAME;


        // 建立OSSClient例項。
        OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, accessKeySecret);

        // 上傳檔案流。
        InputStream inputStream = file.getInputStream();
        // 檔名稱
        String fileName = file.getOriginalFilename();
        // 1.在檔名稱中新增唯一值
        String uuid = UUID.randomUUID().toString().replace("-","");
        fileName = uuid + fileName;

        // 2.把檔案按照日期分類
        String datePath = new DateTime().toString("yyyy/MM/dd");
        fileName = datePath + "/" + fileName;

        ossClient.putObject(bucketName, fileName, inputStream);

        // 關閉OSSClient。
        ossClient.shutdown();

        // 返回上傳之後的路徑
        // 需手動把上傳到阿里oss的路徑拼接出來
        String url = "https://" + bucketName + "." + endPoint + "/" + fileName;
        return url;
    }
}

  實現使用oss上傳