配置阿里云OSS对象存储服务
配置阿里云OSS对象存储服务
导入阿里云OSS依赖
<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>2.8.3</version></dependency><!--日期时间工具--><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.10.1</version></dependency>
配置文件application.yml
这个换成自己的阿里云OSS的配置即可
aliyun:oss:access-key-id: access-key-secret: bucket-domain: bucket-name: end-point:
工具类
@Service
public class OssServiceImpl implements OssService {@Overridepublic String uploadFileAvatar(MultipartFile file) {//获取阿里云存储相关常量String endPoint = ConstantPropertiesUtils.END_POINT;String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;String bucketName = ConstantPropertiesUtils.BUCKET_NAME;String domain = ConstantPropertiesUtils.DOMAIN;String uploadUrl = null;OSS ossClient = null;try {//判断oss实例是否存在:如果不存在则创建,如果存在则获取ossClient = new OSSClientBuilder().build(endPoint, accessKeyId,accessKeySecret);if (!ossClient.doesBucketExist(bucketName)) {//创建bucketossClient.createBucket(bucketName);//设置oss实例的访问权限:公共读ossClient.setBucketAcl(bucketName, CannedAccessControlList.PublicRead);}//获取上传文件流InputStream inputStream = file.getInputStream();//构建日期路径: avatar/2019/02/26/文件名String filePath = new DateTime().toString("yyyy/MM/dd");//文件名: uuid.扩展名// 获取文件的原始名称String original = file.getOriginalFilename();// 使用UUID给文件重命名String fileName = UUID.randomUUID().toString().replace("-", "");// 获取原文件的拓展名String fileType = original.substring(original.lastIndexOf("."));String fileUrl = filePath + "/" + fileName + fileType;//文件上传至阿里云ossClient.putObject(bucketName, fileUrl, inputStream);//获取url地址uploadUrl = domain + "/" + fileUrl;return uploadUrl;} catch (IOException e) {throw new GuLiException(40000, "文件上传失败");} finally {if (ossClient != null) {// 关闭OSSClient。ossClient.shutdown();}}}
}
@Component
public class ConstantPropertiesUtils implements InitializingBean {// 读取配置文件中的值@Value("${aliyun.oss.end-point}")private String endPoint;@Value("${aliyun.oss.access-key-secret}")private String keySecret;@Value("${aliyun.oss.bucket-domain}")private String domain;@Value("${aliyun.oss.bucket-name}")private String bucketName;@Value("${aliyun.oss.access-key-id}")private String keyId;@Autowiredprivate OSSProperties ossProperties;public static String END_POINT;public static String ACCESS_KEY_ID;public static String ACCESS_KEY_SECRET;public static String BUCKET_NAME;public static String FILE_HOST;public static String DOMAIN;// 这个方法会在上面的属性初始化之后进行执行@Overridepublic void afterPropertiesSet() throws Exception {END_POINT = endPoint;ACCESS_KEY_ID = keyId;ACCESS_KEY_SECRET = keySecret;BUCKET_NAME = bucketName;DOMAIN = domain;}
}
测试
配置阿里云OSS对象存储服务相关推荐
- 阿里云OSS——对象存储服务(工具)
阿里云OSS--对象存储服务(工具) 一.依赖 二.yaml配置 三.OSS工具类 四.demo演示 4.1 SpringBoot启动类 4.2 Controller接口 4.3 swagger测试 ...
- 阿里云OSS | 对象存储服务快速入门 | 参考官方文档实现使用JavaSDK上传文件 | 本地上传与web上传案例
参考文档 : 点击查看 文章目录 运行环境 一.OSS相关概念 1.1 Storage Class 存储类型 1.2 Bucket 存储空间 1.3 Object 对象 1.4 Region 地域 1 ...
- 阿里云OSS(对象存储服务)简介
最近公司想要使用阿里云OSS来存储精准客流图片,所以提前熟悉一下,做一个记录 注:阿里云官方文档已经很详细的阐述了OSS.以及开发流程,本文大多都是参考官方文档 OSS官方介绍地址:https://h ...
- 阿里云OSS对象存储服务上传失败问题之一
简介: OSS是阿里云提供一个对象存储服务,有着稳定高效的特点,但在操作时有些问题还是必须要注意一下的 今天在进行上传头像的操作时,发生了一个OSS连接时出现的问题,导致头像上传失败,问题的样式如下图 ...
- hexo博客配置阿里云oss对象存储
直接上步骤,做一个简单的记录! 配置阿里云oss 找到对应的oss 如果没有bucket,则新建一个 新建之后,进入到对应的bucket,然后进行相关设置 以上就是oss的基本设置,接下来是域名相关设 ...
- 阿里云OSS对象存储服务购买与基础使用指南
对象存储服务(Object Storage Service,简称OSS),是基于阿里云飞天分布式系统的海量.安全和高可靠的云存储服务.简单来说,OSS就是一个可以上传.下载.分享文件的服务,这一点从实 ...
- 开发工具篇第八讲:阿里云OSS对象存储服务
本文是开发工具篇第八讲:阿里云对象存储服务(Object Storage Service,简称 OSS),具有与平台无关的RESTful API接口,您可以在任何应用.任何时间.任何地点存储和访问任意 ...
- 阿里云OSS对象存储服务的使用
使用阿里云对象OSS存储服务 由服务器进行上传 在阿里云官网进行开通OSS对象服务 创建你的Bucket 开启跨域功能 创建秘钥且添加权限以及服务器端配置 代码 由客户端进行上传(服务器Base64加 ...
- java oss 批量传输_阿里云OSS对象存储,服务端签名后直传阿里云OSS
继续上一章文章,这次要操作的是,浏览器请求服务要到签名后直传给OSS对象存储. 1.写好服务端的方法,传给前台相应的密钥 @Resource OSSClient ossClient; @Value(& ...
最新文章
- nginx中configure脚本支持的常用选项,拍摄自《Nginx高性能Web服务器详解》
- java 查询启动时间_java获取系统开机时间
- Oracle10g在linux下安装详解
- 织梦ajax表单提交参数错误,【织梦二次开发】织梦jquery+ajax方式提交自定义表单...
- 腐蚀国内稳定服务器_工控机箱和服务器机箱区别在哪里
- a simple introduce to arontab
- Spring Boot : springboot项目混淆方案
- python error loading package_Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决...
- sql计数_SQL计数区分功能概述
- 微信JSAPI模式与浏览器类型安全访问
- 微信红包发送关键代码
- git: command not found 解决
- 网络综合布线应用指南
- CTF_RSA_N不互素
- 数据分析研究思维导图
- (已解决)STM32报错Error: L6218E: Undefined symbol assert_param (referred from misc.o).
- 微信小程序:修复图片音频全新升级带特效喝酒神器源码
- iOS开发-iOS10新特性及开发者主要注意点
- Bresenham改进算法结合wu反走样算法画直线
- Matlab可视化四维数据