使用物件儲存oss實現圖片上傳
阿新 • • 發佈:2021-01-19
想要使用阿里雲物件服務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上傳