色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

springBoot接入阿里云oss的實現(xiàn)步驟

瀏覽:94日期:2023-03-27 18:00:15

maven導(dǎo)入依賴

<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <!-- 阿里云OSS --> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.10.2</version> </dependency> </dependencies>

定義阿里云上傳結(jié)果實體

package com.example.demo.entity;import lombok.Data;/** * 阿里云上傳結(jié)果集 * * @author wushuai * @create 2021-01-25 */@Datapublic class AliyunOssResult { /** * code:200成功 * code: 400失敗 */ private int code; /** * 上傳成功的返回url */ private String url; /** * 提示信息 */ private String msg;}

yml設(shè)置阿里云oss參數(shù)

aliyunOss: endpoint: 'http://oss-cn-shanghai.aliyuncs.com' accessKeyId: 'xxxxxxx' accessKeySecret: 'xxxxxxx' bucketName: 'xxxxxx' urlPrefix: 'http://bucketName.oss-cn-shanghai.aliyuncs.com/'

yml設(shè)置上傳文件大小限制

spring: servlet: multipart: max-file-size: 20MB max-request-size: 20MB

工具類封裝

package com.example.demo.util;import com.aliyun.oss.OSS;import com.aliyun.oss.OSSClientBuilder;import com.aliyun.oss.model.DeleteObjectsRequest;import com.aliyun.oss.model.DeleteObjectsResult;import com.aliyun.oss.model.GeneratePresignedUrlRequest;import com.example.demo.entity.AliyunOssResult;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;import java.io.InputStream;import java.net.URL;import java.util.Date;import java.util.List;@Componentpublic class AliyunOSSUtil { @Value('${aliyunOss.endpoint}') private String endpoint; @Value('${aliyunOss.accessKeyId}') private String accessKeyId; @Value('${aliyunOss.accessKeySecret}') private String accessKeySecret; @Value('${aliyunOss.bucketName}') private String bucketName; @Value('${aliyunOss.urlPrefix}') private String urlPrefix; /** * 上傳文件,以IO流方式 * * @param inputStream 輸入流 * @param objectName 唯一objectName(在oss中的文件名字) */ public AliyunOssResult upload(InputStream inputStream, String objectName) { AliyunOssResult aliyunOssResult = new AliyunOssResult(); try { // 創(chuàng)建OSSClient實例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 上傳內(nèi)容到指定的存儲空間(bucketName)并保存為指定的文件名稱(objectName)。 ossClient.putObject(bucketName, objectName, inputStream); // 關(guān)閉OSSClient。 ossClient.shutdown(); aliyunOssResult.setCode(200); aliyunOssResult.setUrl(urlPrefix+objectName); aliyunOssResult.setMsg('上傳成功'); } catch (Exception e) { e.printStackTrace(); aliyunOssResult.setCode(400); aliyunOssResult.setMsg('上傳失敗'); } return aliyunOssResult; } /** * 刪除OSS中的單個文件 * * @param objectName 唯一objectName(在oss中的文件名字) */ public void delete(String objectName) { try { // 創(chuàng)建OSSClient實例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 刪除文件。 ossClient.deleteObject(bucketName, objectName); // 關(guān)閉OSSClient。 ossClient.shutdown(); } catch (Exception e) { e.printStackTrace(); } } /** * 批量刪除OSS中的文件 * * @param objectNames oss中文件名list */ public void delete(List<String> objectNames) { try { // 創(chuàng)建OSSClient實例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 批量刪除文件。 DeleteObjectsResult deleteObjectsResult = ossClient.deleteObjects(new DeleteObjectsRequest(bucketName).withKeys(objectNames)); List<String> deletedObjects = deleteObjectsResult.getDeletedObjects(); // 關(guān)閉OSSClient。 ossClient.shutdown(); } catch (Exception e) { e.printStackTrace(); } } /** * 獲取文件臨時url * * @param objectName oss中的文件名 * @param effectiveTime 有效時間(ms) */ public String getUrl(String objectName,long effectiveTime){ OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 設(shè)置URL過期時間 Date expiration = new Date(new Date().getTime() + effectiveTime); GeneratePresignedUrlRequest generatePresignedUrlRequest ; generatePresignedUrlRequest =new GeneratePresignedUrlRequest(bucketName, objectName); generatePresignedUrlRequest.setExpiration(expiration); URL url = ossClient.generatePresignedUrl(generatePresignedUrlRequest); return url.toString(); }}

controller接收調(diào)用

package com.example.demo.controller;import com.example.demo.util.AliyunOSSUtil;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.multipart.MultipartFile;import java.io.IOException;import java.util.UUID;@RestController@RequestMapping('/file')public class FileController { @Autowired private AliyunOSSUtil aliyunOSSUtil; @RequestMapping(value = '/uploadFile') public @ResponseBody Object uploadFile(@RequestParam(value = 'file', required = false) MultipartFile file, String strPath) throws IOException { String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf('.') + 1); String objectName = strPath+'/'+ UUID.randomUUID().toString()+'.'+suffix; return aliyunOSSUtil.upload(file.getInputStream(),objectName); }}

postman測試

springBoot接入阿里云oss的實現(xiàn)步驟

springBoot接入阿里云oss的實現(xiàn)步驟

到此這篇關(guān)于springBoot接入阿里云oss的實現(xiàn)步驟的文章就介紹到這了,更多相關(guān)springBoot接入阿里云oss內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 国产成人欧美一区二区三区的 | 精品午夜寂寞黄网站在线 | 一本色道久久综合亚洲精品加 | 亚洲综合在线另类色区奇米 | 91日本在线观看亚洲精品 | 国产资源在线免费观看 | 色拍拍噜噜噜aⅴ在线观看 色青青草原桃花久久综合 色婷婷91 | 国产一级性片 | 曰韩一级 | 一级在线免费视频 | 欧美曰韩一区二区三区 | 亚洲欧美日韩精品久久亚洲区色播 | 深夜福利视频在线观看免费播放 | 国产免费观看a大片的网站 国产免费黄色网址 | 日韩一级片| 毛片成人 | 成人免费真人毛片视频 | 一级做a爱久久久久久久 | 粉嫩高中生的第一次在线观看 | 综合自拍亚洲综合图区美腿丝袜 | 中文字幕99在线精品视频免费看 | 国产美女作爱全过程免费视频 | 自拍第一页 | 深夜福利爽爽爽动态图 | 女人又黄的视频网站 | 日韩欧美黄色 | 精品国产中文一级毛片在线看 | 久久一本精品久久精品66 | 亚洲午夜在线观看 | 国产精品久久久久久影视 | 日韩欧美中文字幕一区二区三区 | 亚洲国产最新在线一区二区 | 免费看成人 | 久久99欧美| 怡红院在线视频观看 | 经典香港a毛片免费观看 | 在线观看日本免费视频大片一区 | 成人国产精品视频 | 免费看孕妇毛片全部播放 | 中国女人真人一级毛片 | 一级黄色欧美片 |