一、案例描述
基于Springboot框架實現一個上傳圖片到阿里云服務端保存的小案例。
二、準備工作
基于Springboot免費搭載輕量級阿里云OSS數據存儲庫(將本地文本、照片、視頻、音頻等上傳云服務保存)-CSDN博客
三、代碼
新建這兩個類:一個是uploadcontroller負責和前端交互,一個aliossutils負責將上傳數據與阿里云服務器交互。
?
UploadController
package com.bytedance.controller; //換成自己的包名
import com.bytedance.pojo.Result;
import com.bytedance.utils.AliOSSUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
@Slf4j
@RestController
public class UploadController {@Autowiredprivate AliOSSUtils aliOSSUtils;@PostMapping("/upload")public Result upload(MultipartFile image) throws Exception {log.info("文件上傳,文件名:{}",image.getOriginalFilename());// 調用阿里云oss進行文件類上傳String url = aliOSSUtils.upload(image);log.info("文件上傳完成,路徑為:{}",url);return Result.success(url);}}
?AliOSSUtils
package com.bytedance.utils; // 換成自己的包名import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.UUID;/*** 阿里云 OSS 工具類*/
@Component
public class AliOSSUtils {private String endpoint = "https://oss-cn-beijing.aliyuncs.com";private String accessKeyId = "LTAI5tPANv8cHYfmuT16U3YV";private String accessKeySecret = "K6OTcJ61K2YQjZFQYi612Hl7ZifFYD";private String bucketName = "mybatiss-tlias";/*** 實現上傳圖片到OSS*/public String upload(MultipartFile file) throws IOException {// 獲取上傳的文件的輸入流InputStream inputStream = file.getInputStream();// 避免文件覆蓋String originalFilename = file.getOriginalFilename();String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));//上傳文件到 OSSOSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);ossClient.putObject(bucketName, fileName, inputStream);//文件訪問路徑String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName;// 關閉ossClientossClient.shutdown();return url;// 把上傳到oss的路徑返回}}
運行:?
?
四、驗證?
?此時還沒有圖片,我們運行postman仿真:選擇本地文件進行提交,我們發現提交成功
再打開OSS管理平臺查看:
?發現已經提交成功,至此,全篇結束~