【每天晚上9點30準時分享,"複制粘貼直接用"Java工具,希望對大家的項目開發有所幫助,話不多說了,直接上步驟和代碼】
1
添加依賴
<dependency> <groupId>org.projectlombokgroupId> <artifactId>lombokartifactId> <version>1.18.4version>dependency><dependency> <groupId>com.aliyun.ossgroupId> <artifactId>aliyun-sdk-ossartifactId> <version>2.5.0version>dependency>
2
阿裡雲控制台開通對象存儲OSS
按照阿裡雲新手引導設定
3
雲存儲配置資訊類
import lombok.Data;import java.io.Serializable;/** * 雲存儲配置資訊 * * @author Mark [email protected] */@Datapublic class CloudStorageConfig implements Serializable { // 阿裡雲綁定的域名private String aliyunDomain = “xxxx”;private String aliyunPrefix = “xxxx”;// 阿裡雲EndPoint不能為空private String aliyunEndPoint = “oss-cn-beijing.aliyuncs.com”;// 阿裡雲AccessKeyId不能為空private String aliyunAccessKeyId = “xxx”;// 阿裡雲AccessKeySecret不能為空private String aliyunAccessKeySecret = “xxx”;// 阿裡雲BucketName不能為空private String aliyunBucketName;}
4
工具類
import com.aliyun.oss.OSSClient;import java.io.ByteArrayInputStream;import java.io.InputStream;/** * 阿裡雲存儲 * * @author Mark [email protected] */public class AliyunCloudStorageUtils { private OSSClient client; private CloudStorageConfig config; public AliyunCloudStorageUtils(CloudStorageConfig config){ this.config = config; //初始化 init(); } private void init(){ client = new OSSClient(config.getAliyunEndPoint(), con-fig.getAliyunAccessKeyId(), config.getAliyunAccessKeySecret()); } /** * 檔案上傳 * @param data 檔案位元組數組 * @param path 檔案路徑,包含檔案名 * @return 傳回http位址 */ public String upload(byte[] data, String path) { return upload(new ByteArrayInputStream(data), path); } /** * 檔案上傳 * @param inputStream 位元組流 * @param path 檔案路徑,包含檔案名 * @return 傳回http位址 */ public String upload(InputStream inputStream, String path) { try { client.putObject(config.getAliyunBucketName(), path, in-putStream); } catch (Exception e){ throw new RRException("上傳檔案失敗,請檢查配置資訊", e); } log.info("阿裡雲上傳結果{}", config.getAliyunDomain() + "/" + path); return config.getAliyunDomain() + "/" + path; } /** * 檔案上傳 * @param data 檔案位元組數組 * @param suffix 字尾 * @return 傳回http位址 */ public String uploadSuffix(byte[] data, String suffix) { return upload(data, getPath(config.getAliyunPrefix(), suffix)); } /** * 檔案上傳 * @param inputStream 位元組流 * @param suffix 字尾 * @return 傳回http位址 */ public String uploadSuffix(InputStream inputStream, String suffix) { return upload(inputStream, getPath(config.getAliyunPrefix(), suffix)); }}
5
在實際接口開發中使用效果截圖
/** * 檔案上傳 * * @author Mark [email protected] */@[email protected]("sys/oss")public class SysOssController { private Logger log = LoggerFactory.getLogger(getClass()); /** * 上傳檔案 */ @RequestMapping("/upload") public String upload(@RequestParam("file") MultipartFile file) throws Exception { if (file.isEmpty()) { throw new RRException("上傳檔案不能為空"); } log.info("阿裡雲上傳檔案{}", file.getOriginalFilename()); //上傳檔案 String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); CloudStorageConfig config = new CloudStorageConfig(); String url = new AliyunCloudStorageUtils(config).uploadSuffix(file.getBytes(), suffix); return url; }}
java倉庫介紹:每天提供最實用的java工具,定期分享項目源碼。我們的宗旨是:複制粘貼就能用,減少開發時間,讓我們java程式員有更多的時間劃水摸魚,多一些時間做自己想做的事情 。 Java倉庫 一個拿來就能用的公衆号
微信掃描二維碼,關注我的公衆号