aliyun 实现文件上传

1、添加 aliyun 对象存储相关依赖

 <!-- 阿里云 OSS 对象存储相关依赖 -->
<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>2.8.3</version>
</dependency>

2、在 aliyun 平台上面提前开通 OSS 对象存储服务, 并在对象存储的 bucket 列表中创建 bucket, 存储少量文件不会收费

2.1、获取 bucketName
2.2、获取 endpoint

2.3、获取 accessKeyId 和 accessKeySecret


3、如果你在微服务中使用该业务, nacos 远程配中心的相关配置,; 只是在 SpringBoot 中简单使用则忽略这一步

oss:endpoint: your EndpointaccessKeyId: your accessKeyIdaccessKeySecret: your accessKeySecretbucketName: your bucketName

4、属性配置类(微服务中使用这种方式)

@Getter
@Setter
@ConfigurationProperties(prefix = "oss")
public class OSSProperties {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;
}

属性配置类(SpringBoot 中简单使用, 选择下面这种方式)

@Getter
@Setter
public class OSSProperties {@Value("your endpoint")private String endpoint;@Value("your accessKeyId")private String accessKeyId;@Value("your accessKeySecret")private String accessKeySecret;@Value("your bucketName")private String bucketName;
}

OSS 配置类

@Configuration
@EnableConfigurationProperties(OSSProperties.class)
public class OSSConfig {@Autowiredprivate OSSProperties properties;@Bean(destroyMethod = "shutdown")public OSS ossClient() {return new OSSClient(properties.getEndpoint(), properties.getAccessKeyId(), properties.getAccessKeySecret());}
}

5、文件上传下载的工具类, OSSUtils 工具类中使用的 SpringUtils 获取 bean 对象的工具方法, 请参照 Spring bean的工具类

/*** 需求: 当前类中有方法需要获取 Spring 容器中的对象. 但是该类无法交给 Spring 容器管理*/
public class OSSUtils {public static String uploadFile(String path, MultipartFile file) {// 从 Spring 容器中获取对象OSS ossClient = SpringUtils.getBean("ossClient", OSS`class);OSSProperties properties = SpringUtils.getBean(OSSProperties.class);String filename = UUID.randomUUID().toString().replaceAll("-", "");try {// 获取原始文件名String originalFilename = file.getOriginalFilename();String suffix = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);filename = path + "/" + filename + "." + suffix;InputStream inputStream = file.getInputStream();// 简单类型的文件上传ossClient.putObject(properties.getBucketName(), filename, inputStream);// http://cd-wolf2w-cloud.oss-cn-chengdu.aliyun.com/xxx.jpgreturn "https://" + properties.getBucketName() + "." + properties.getEndpoint() + "/" + filename;} catch (Exception e) {e.printStackTrace();return null;}}
}

6、在Controller控制层调用业务方法, AjaxResult 统一结果响应处理对象请参照 MyBatis Plus 实现简单分页(拓展性强)

@PostMapping("/uploadImg")
public AjaxResult<?> uploadImg(MultipartFile upload) {// 图片的原始名字String originalFilename = upload.getOriginalFilename();String url = OSSUtils.uploadFile("images", upload);return AjaxResult.success().put("fileName", originalFilename).put("uploaded", 1).put("url", url);
}

7、上传成功之后, 就可以在 bucket 列表中查看自己上传成功的文件了

aliyun 实现文件上传相关推荐

  1. aliyun oss 文件上传 java.net.SocketTimeoutException Read timed out 问题分析及解决

    aliyun oss 文件上传 java.net.SocketTimeoutException Read timed out 问题分析及解决 参考文章: (1)aliyun oss 文件上传 java ...

  2. Python实现阿里云aliyun服务器里的文件上传与下载

    Python实现阿里云服务器里的文件上传与下载 Python实现阿里云服务器里的文件上传与下载 背景: 正文: 预备环境: 构想: 实现: 注意: 结尾 018.4.15 背景: 老实说,因为现实的各 ...

  3. 文件上传oss服务器

    最近接到个需求,项目文件由原来上传至服务器本地改为上传至阿里oss服务器中.查看了官方相关文档后最终成功实现,在此记录一下相关经验. 官网文档:https://help.aliyun.com/docu ...

  4. 科普|不同协议下远程服务器文件上传_下载优劣对比

    作为一个程序员,如果不知道如何进行远程服务器的文件上传与下载,实在是一件尴尬的事情.打开百度,搜索「远程服务器 上传下载」,你能得到 63,100,000 个搜搜结果,五花八门的操作方式的让人眼花缭乱 ...

  5. png文件头_文件上传总结

    可以参考upload-labs 检验规则 1.客户端javascript校验 通常在前端进行过滤,我们可以通过命名1.php.jpg上传,然后修改数据包文件名filename=1.php上传.或者直接 ...

  6. 图片上传之后清空_OSS文件上传及OSS与ODPS之间数据连通

    场景描述 有这样一种场景,用户在自建服务器上存有一定数量级的CSV格式业务数据,某一天用户了解到阿里云的OSS服务存储性价比高(嘿嘿,颜值高),于是想将CSV数据迁移到云上OSS中,并且未来还想对这些 ...

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

    文件实体类 @Data public class UploadFile {private String fileName;private String fileType;private long fi ...

  8. 文件上传 upload-labs 1~20做题记录

    pass-01: 解题思路:(绕开前端js检测) (1):F12 ,直接修改js 允许文件的上传类型 , (2):将webshell 文件后缀名改为允许上传的,然后用 burp suite 拦截后修改 ...

  9. jsp文件上传_文件上传

    一.文件上传的目的--脚本文件 文件上传的一共可造成三种危害,从低到高分别是,任意内容文件,html文件,脚本文件. 任意内容文件 任意内容文件指的是虽然文件后缀不可控,但是文件内容可控,比如我可以上 ...

  10. tomcat temp 大量 upload 文件_渗透测试之文件上传漏洞总结

    文末下载上传环境源码 客户端 js检查 一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式. 查看源代码可以看到有如下代码对上传文件类型进行了限制: 我们 ...

最新文章

  1. 《Spring设计思想》AOP设计思想与原理(图文并茂)
  2. linux循环判断输出结果,Linux Shell基础学习——循环与条件判断
  3. javascript生成指定范围的随机整数
  4. Android PDU
  5. java mongodb 返回所有field_JAVA高级之反射
  6. Kaggle | 用 YoloV5 将物体检测的性能翻倍的心路历程
  7. C++11多线程のfuture,promise,package_task
  8. 剑指offer——圆圈中最后剩下的数字
  9. 面对疫情等群体性危机,程序员如何在家高效办公?
  10. TechNet 晒文 - Windows 7 系列汇总
  11. LLBL Gen 元数据编程 LLBL Gen Meta-data Programming
  12. matlab的小波分析,matlab小波分析步骤是什么
  13. 【毕业设计】单片机森林火灾监控防护预警系统 - 物联网 嵌入式
  14. Web前端性能优化——如何提高页面加载速度
  15. 微信公众号无服务器 外部链接,微信公众号文章怎么添加外部链接-给微信公众号文章添加外部链接的方法 - 河东软件园...
  16. python计算复数的辐角_python做傅里叶变换
  17. socket多进程编程
  18. TiDB+TiSpark部署--安装,扩缩容及升级操作
  19. Rockland 艾美捷丨TrueBlot链霉亲和素磁珠
  20. 一个matlab可视化的结果

热门文章

  1. zookeeper 入门到精通
  2. shell编程系列14--文本处理三剑客之awk的概述及常用方法总结
  3. Android应届生,靠什么拿到的今日头条、携程双offer(1)
  4. BootStrap 初始化表格时实现特定行改变背景颜色
  5. [官方培训]15-UE场景搭建和管理 Epic 戴浩军 笔记
  6. 长连接,WebSocket和粘性会话
  7. BLE入门谈:从空中数据收发理解BLE(转载)
  8. 无线端的弹幕实现方案
  9. 腾讯实习生招聘笔试题目【附加链接】
  10. 五.树莓派4B-安装常用软件