产品文档地址:
https://help.aliyun.com/product/31815.html
产品购买地址:
https://www.aliyun.com/search?scene=all&k=oss
在官网首先购买产品,开通oss服务后进入控制台:

在https://developer.aliyun.com/ask/2061
查看相关的endpoint地址(找到自己所在的区域)

在控制台
https://oss.console.aliyun.com/overview
查找accesskey入口:

获得自己的accessKeyId和accessKeySecret
在控制台点击新建bucket,自己定义名字

进入自己项目导入依赖:

   <dependency><groupId >com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>2.8.2</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>3.2.8</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>1.1.0</version></dependency>

新建一个单元测试:

    private String endpoint ="https://oss-cn-beijing.aliyuncs.com";//(写自己endpoint对应的地址)private String accessKeyId="...";private String secretAccessKey="...";private String bucketName="...";@Testpublic void uploadByOss() throws FileNotFoundException {OSSClient ossClient = new OSSClient(endpoint,accessKeyId, secretAccessKey);InputStream inputStream = new FileInputStream("C:\\Users\\14172\\Pictures\\0.png");
//上传图片,第一个参数为bucketName,第二个参数key为上传的文件路径名称,第三个为InputStreamossClient.putObject(bucketName ,"upload/" +"aa.jpg", inputStream);Date expiration = new Date(new Date().getTime() + 3600l * 1000 * 24 * 365 * 10);
// 生成URL,第一个参数为bucketName,第二个参数key为上传的文件路径名称,第三个为过期时间URL url = ossClient.generatePresignedUrl(bucketName ,"upload/"+"aa.jpg" , expiration);System.out.println(url);}

点击运行后可以看到文件管理中多了一个文件夹,下面有自己上传的文件:

在程序运行后得到的url点击后会跳转到网页自动下载:


点击后可以看到自己刚刚上传的文件

也可以用一个类将oss上传包装起来:

@Service
public class OssUploadStrategyImpl extends AbstractUploadStrategyImpl {@Autowiredprivate OssConfigProperties ossConfigProperties;@Overridepublic Boolean exists(String filePath) {return getOssClient().doesObjectExist(ossConfigProperties.getBucketName(), filePath);}@Overridepublic void upload(String path, String fileName, InputStream inputStream) {getOssClient().putObject(ossConfigProperties.getBucketName(), path + fileName, inputStream);}@Overridepublic String getFileAccessUrl(String filePath) {return ossConfigProperties.getUrl() + filePath;}/*** 获取ossClient** @return {@link OSS} ossClient*/private OSS getOssClient() {return new OSSClientBuilder().build(ossConfigProperties.getEndpoint(), ossConfigProperties.getAccessKeyId(), ossConfigProperties.getAccessKeySecret());}}

在yml文件中写oss配置:

upload:mode: ossoss:url: https://OSS域名/endpoint: oss-cn-beijing-.aliyuncs.comaccessKeyId: ..accessKeySecret: ..bucketName: ..

获得配置文件的值:

@Data
@Configuration
@ConfigurationProperties(prefix = "upload.oss")
public class OssConfigProperties {/*** oss域名*/private String url;private String endpoint;/*** 访问密钥id*/private String accessKeyId;/*** 访问密钥密码*/private String accessKeySecret;private String bucketName;}

上传策略抽象类:

@Service
public abstract class AbstractUploadStrategyImpl {@Overridepublic String uploadFile(MultipartFile file, String path) {try {// 获取文件md5值String md5 = FileUtils.getMd5(file.getInputStream());// 获取文件扩展名String extName = FileUtils.getExtName(file.getOriginalFilename());// 重新生成文件名String fileName = md5 + extName;// 判断文件是否已经上传if (!exists(path + fileName)) {upload(path, fileName, file.getInputStream());}return getFileAccessUrl(path + fileName);} catch (Exception e) {e.printStackTrace();throw new BizException("文件上传失败");}}public abstract Boolean exists(String filePath);
}

java使用阿里云oss上传文件测试案例+上传策略包装类相关推荐

  1. django图片上传到oss_django 配置阿里云OSS存储media文件的例子

    1. 安装django-aliyun-oss2-storage包 linux上用 pip install django-aliyun-oss2-storage 无报错,顺利安装 windows上报错: ...

  2. 微信头像下载并上传到阿里云OSS,PHP文件上传到阿里云OSS简单代码(OSS文件上传,微信头像下载,CURL下载文件,微信头像链接过期)

    (就这么个小事,有多少公司多少项目没做到!!) 微信公众号项目,后端获取到授权用户的微信头像后,要自行下载保存,不下载的话,微信返回的头像链接会在一段时间后过期,无法访问! 下面是我写的两个简单实用方 ...

  3. 使用PicGo+阿里云OSS实现md文档图片上传

    使用PicGo+阿里云OSS实现md文档图片上传 这次给大家带来的是PicG0+阿里云Oss+typora的图床环境搭建,帮助大家提高工作效率+写博客速度! 1.typora安装 给大家一个链接:ty ...

  4. 一文读懂什么是阿里云OSS,如何使用Java操作阿里云OSS?

    一.什么是阿里云OSS OSS: Object Storage Service 对象存储服务是一种海量.安全.低成本.高可靠的云存储服务,适合存放任意类型的文件.容量和处理能力弹性扩展,多种存储类型供 ...

  5. Java使用阿里云OSS对象存储上传图片

    示例说明   该案例是OSS Java SDK的示例程序,您可以修改endpoint.accessKeyId.accessKeySecret.bucketName后直接运行. 本示例中的并不包括OSS ...

  6. java整合阿里云OSS

    java整合阿里云OSS 说明 一.OSS前期准备 (1)创建Bucket (2)创建RAM账号 创建用户 创建用户组 二.OSS对应API开发(java) 说明 更新时间:2021/1/7 16:3 ...

  7. Java中阿里云OSS文件上传工具类

    阿里云OSS文件上传下载工具类 前言: 本质上就是获取配置文件信息,然后注入bean,调用sdk中提供的增删改方法: 为了避免同名文件会替换,用了hutool中唯一id生成+文件名做拼接 导入依赖:→ ...

  8. Java实现阿里云OSS上传文件

    推荐:前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.. 点击跳转到网站 1.准备工作:创建操作阿里云OSS许可证 阿里云官方文档 这里不再赘述,根据官方文档一步步的 ...

  9. JAVA通过阿里云OSS存储实现图片上传功能

    一.前置准备 首先我们需要在阿里云注册账号,实名认证后开通OSS功能,点击进入OSS功能的管理平台 进入概览页面后,点击Bucket列表,创建一个Bucket(相当于一个存放文件的文件夹)  关键是要 ...

最新文章

  1. 在请求分页虚存管理系统中_请求分页式系统中,以页为单位管理用户的虚空间,以段为单位管理内存空间_学小易找答案...
  2. python教程第四版pdf下载-笨办法学python 第四版 中文pdf高清版
  3. leetcode —— 752. 打开转盘锁
  4. Redis 写磁盘出错 Cannot allocate memory
  5. JavaScript中的私有函数;Javascript构造函数的私有方法中访问其属性和公有方法
  6. 程序员面试金典——3.7猫狗收养所
  7. [转载]你是那个能和我同行一生的人吗?
  8. Jenkis maven构建项目实践
  9. pat A1052:Linked List Sorting静态链表+链表排序
  10. 一个学习PCI Express的 不错去处
  11. 2021年58个最佳个人WordPress博客主题
  12. window下解压tar.gz.part-*文件
  13. 深大uooc学术道德与学术规范教育第十章
  14. Teamspeak3集成要注意的问题
  15. mathtype向上取整函数
  16. 什么是JPA(Java persistence API)?
  17. 编写一个java类,用来表示出部队中 军 师 旅 团这种树状数据结构,使上级能检索到下级,下级也能检索到上级
  18. 【Ubuntu16.04】ROS · Kinetic安装 · 图文教程与问题详解
  19. 痛快 SpringBoot终于禁掉了循环依赖
  20. 邀请返现php怎么实现_PHP实现财务审核通过后返现金额到客户的功能

热门文章

  1. java isinterrupted_JAVA多线程之中断机制stop()、interrupted()、isInterrupted()
  2. win7系统安装信息服务器不可用怎么办,win7系统提示rpc服务器不可用怎么办
  3. pb 哪里找到系统图标_win10电脑桌面上“回收站”和“此电脑”图标不见了怎么办...
  4. jmeter展示内存cpu_基于Docker的jmeter弹性压测(2)监控
  5. vo生成MySQL表_跟我学微服务统一开发平台-代码生成器
  6. 深度学习和目标检测系列教程 15-300:在 Python 中使用 OpenCV 执行 YOLOv3 对象检测
  7. 期末复习、化学反应工程科目(第一章)
  8. 四十五、深入Java的网络编程(上篇)
  9. 二十八、Java中的Int和Integer的区别
  10. 股市永不过时的黄金铁律:零下金叉疯狂买,零上死叉立即卖