配置阿里云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对象存储服务相关推荐

  1. 阿里云OSS——对象存储服务(工具)

    阿里云OSS--对象存储服务(工具) 一.依赖 二.yaml配置 三.OSS工具类 四.demo演示 4.1 SpringBoot启动类 4.2 Controller接口 4.3 swagger测试 ...

  2. 阿里云OSS | 对象存储服务快速入门 | 参考官方文档实现使用JavaSDK上传文件 | 本地上传与web上传案例

    参考文档 : 点击查看 文章目录 运行环境 一.OSS相关概念 1.1 Storage Class 存储类型 1.2 Bucket 存储空间 1.3 Object 对象 1.4 Region 地域 1 ...

  3. 阿里云OSS(对象存储服务)简介

    最近公司想要使用阿里云OSS来存储精准客流图片,所以提前熟悉一下,做一个记录 注:阿里云官方文档已经很详细的阐述了OSS.以及开发流程,本文大多都是参考官方文档 OSS官方介绍地址:https://h ...

  4. 阿里云OSS对象存储服务上传失败问题之一

    简介: OSS是阿里云提供一个对象存储服务,有着稳定高效的特点,但在操作时有些问题还是必须要注意一下的 今天在进行上传头像的操作时,发生了一个OSS连接时出现的问题,导致头像上传失败,问题的样式如下图 ...

  5. hexo博客配置阿里云oss对象存储

    直接上步骤,做一个简单的记录! 配置阿里云oss 找到对应的oss 如果没有bucket,则新建一个 新建之后,进入到对应的bucket,然后进行相关设置 以上就是oss的基本设置,接下来是域名相关设 ...

  6. 阿里云OSS对象存储服务购买与基础使用指南

    对象存储服务(Object Storage Service,简称OSS),是基于阿里云飞天分布式系统的海量.安全和高可靠的云存储服务.简单来说,OSS就是一个可以上传.下载.分享文件的服务,这一点从实 ...

  7. 开发工具篇第八讲:阿里云OSS对象存储服务

    本文是开发工具篇第八讲:阿里云对象存储服务(Object Storage Service,简称 OSS),具有与平台无关的RESTful API接口,您可以在任何应用.任何时间.任何地点存储和访问任意 ...

  8. 阿里云OSS对象存储服务的使用

    使用阿里云对象OSS存储服务 由服务器进行上传 在阿里云官网进行开通OSS对象服务 创建你的Bucket 开启跨域功能 创建秘钥且添加权限以及服务器端配置 代码 由客户端进行上传(服务器Base64加 ...

  9. java oss 批量传输_阿里云OSS对象存储,服务端签名后直传阿里云OSS

    继续上一章文章,这次要操作的是,浏览器请求服务要到签名后直传给OSS对象存储. 1.写好服务端的方法,传给前台相应的密钥 @Resource OSSClient ossClient; @Value(& ...

最新文章

  1. nginx中configure脚本支持的常用选项,拍摄自《Nginx高性能Web服务器详解》
  2. java 查询启动时间_java获取系统开机时间
  3. Oracle10g在linux下安装详解
  4. 织梦ajax表单提交参数错误,【织梦二次开发】织梦jquery+ajax方式提交自定义表单...
  5. 腐蚀国内稳定服务器_工控机箱和服务器机箱区别在哪里
  6. a simple introduce to arontab
  7. Spring Boot : springboot项目混淆方案
  8. python error loading package_Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决...
  9. sql计数_SQL计数区分功能概述
  10. 微信JSAPI模式与浏览器类型安全访问
  11. 微信红包发送关键代码
  12. git: command not found 解决
  13. 网络综合布线应用指南
  14. CTF_RSA_N不互素
  15. 数据分析研究思维导图
  16. (已解决)STM32报错Error: L6218E: Undefined symbol assert_param (referred from misc.o).
  17. 微信小程序:修复图片音频全新升级带特效喝酒神器源码
  18. iOS开发-iOS10新特性及开发者主要注意点
  19. Bresenham改进算法结合wu反走样算法画直线
  20. Matlab可视化四维数据

热门文章

  1. 圈复杂度Cyclomatic complexity
  2. 面经_西安葡萄城_软件开发实习生
  3. HCNP RoutingSwitching之MAC安全
  4. 惯性导航和惯性器件(二)
  5. 自相关函数,互相关函数
  6. MFC 简单的MD5计算器
  7. 云计算的概念,发展现状,实现机制,Google云计算原理
  8. 商业智能平台研究 (十) ETL 选型
  9. 苹果手机清灰_手机清灰音频
  10. C++实验6 对象数组