.xml引用

        <!-- OSS SDK 相关依赖 --><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.8.1</version></dependency>

.yml配置

# OSS相关配置信息 (OSS官网配置信息)
aliyun:oss:endpoint: http://oss-cn-hangzhou.aliyuncs.com # oss对外服务的访问域名url: https://**.oss-cn-hangzhou.aliyuncs.com/accessKeyId: *** # 访问身份验证中用到用户标识accessKeySecret: *** # 用户用于加密签名字符串和oss用来验证签名字符串的密钥bucketName: **env: dev
阿里云 OSS 配置信息:
package com.config;import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.io.Serializable;/*** @Author FangYN* @Date 2020/10/9 14:25* @Description 阿里云 OSS 配置信息**/
@Data
@Configuration
public class OSSConfig implements Serializable {private static final long serialVersionUID = -119396871324982279L;/*** 阿里云 oss 站点*/@Value("${aliyun.oss.endpoint}")private String endpoint;/*** 阿里云 oss 资源访问 url*/@Value("${aliyun.oss.url}")private String url;/*** 阿里云 oss 公钥*/@Value("${aliyun.oss.accessKeyId}")private String accessKeyId;/*** 阿里云 oss 私钥*/@Value("${aliyun.oss.accessKeySecret}")private String accessKeySecret;/*** 阿里云 oss 文件根目录*/@Value("${aliyun.oss.bucketName}")private String bucketName;/*** 环境*/@Value("${aliyun.env}")private String env;@Bean("oss")public OSS initOssClient() {OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);return ossClient;}//    /**
//     * @param keyName 文件名
//     * @return oss获取文件下载路径
//     */
//    public URL getUrl(String keyName) {
//        OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
//        // 设置URL过期时间为1小时
//        Date expiration = new Date(new Date().getTime() + 3600 * 10000);
//        // 生成URL
//        URL url = client.generatePresignedUrl(bucketName, packApk + keyName, expiration);
//        return url;
//    }
}
阿里云 oss 上传工具类:
package com.util;import com.aliyun.oss.ClientConfiguration;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.common.auth.DefaultCredentialProvider;
import com.aliyun.oss.model.CannedAccessControlList;
import com.aliyun.oss.model.PutObjectResult;
import com.common.util.UUIDUtils;
import com.config.OSSConfig;
import org.springframework.util.ObjectUtils;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Date;/*** @Author FangYN* @Date 2020/10/9 14:24* @Description 阿里云 oss 上传工具类**/
public class OSSUtil {private OSSUtil() {}/*** oss 工具客户端*/private volatile static OSSClient ossClient = null;/*** 上传文件至阿里云 OSS* 文件上传成功,返回文件完整访问路径* 文件上传失败,返回 null** @param ossConfig oss 配置信息* @param file      待上传文件* @param fileDir   文件保存目录* @param fileName  文件重命名(文件后缀需要带)* @return oss 中的相对文件路径*/public static String upload(OSSConfig ossConfig, MultipartFile file, String fileDir, String fileName) throws IOException {initOSS(ossConfig);StringBuilder fileUrl = new StringBuilder();InputStream ins = null;try {if (ObjectUtils.isEmpty(fileName)) {String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf('.'));fileName = System.currentTimeMillis() + "-" + UUIDUtils.getUUID().substring(0, 18) + suffix;}if (!fileDir.endsWith("/")) fileDir = fileDir.concat("/");fileUrl = fileUrl.append(ossConfig.getEnv().concat("/") + fileDir + fileName);ossClient.setBucketAcl(ossConfig.getBucketName(), CannedAccessControlList.PublicRead);ins = file.getInputStream();PutObjectResult result = ossClient.putObject(ossConfig.getBucketName(), fileUrl.toString(), ins);ins.close();} catch (IOException e) {e.printStackTrace();return null;} catch (Throwable throwable) {throwable.printStackTrace();} finally {if (ins != null) ins.close();}fileUrl = fileUrl.insert(0, ossConfig.getUrl());return fileUrl.toString();}/*** @param ossConfig oss信息* @return 初始化 oss 客户端*/private static OSSClient initOSS(OSSConfig ossConfig) {if (ossClient == null) {synchronized (OSSUtil.class) {if (ossClient == null) {ossClient = new OSSClient(ossConfig.getEndpoint(),new DefaultCredentialProvider(ossConfig.getAccessKeyId(), ossConfig.getAccessKeySecret()),new ClientConfiguration());}}}return ossClient;}/*** @param keyName 存放路径+文件名* @return      oss获取文件下载路径*/public static URL getUrl(String keyName, OSSConfig ossConfig) {initOSS(ossConfig);Date expiration = new Date(new Date().getTime() + 3600l * 1000 * 24 * 365 * 10);// 设置URL过期时间为10年URL url = ossClient.generatePresignedUrl(ossConfig.getBucketName(), keyName, expiration);// 生成URLreturn url;}}

阿里云OSS配置及使用相关推荐

  1. 阿里云OSS配置SSL证书

    一.进入阿里云OSS管理控制台 二.传输管理--域名管理 三.证书托管 四.自定义上传,下载SSL证书文件解压,选择Nginx上传.

  2. 阿里云OSS域名配置及简单上传

    目前开发系统,附件文件一般都会使用第三方的存储空间来保存,一方面是为了开发者提供便利,另一方可以减轻系统的访问压力,下面介绍一下阿里云的OSS的一些简单配置和使用. 一.阿里云OSS配置 前提:你需要 ...

  3. 阿里云oss 使用, 基于Nginx 配置云服务器+oss的内网访问 , 及使用Java SDK 完成上传,下载,删除,查询文件列表操作

    一.同阿里产品,云服务器和存储对象oss-配置内网访问 阿里存储对象oss 地址: https://oss.console.aliyun.com/overview 配置须知 通过Nginx 进行网络转 ...

  4. SpringBoot整合阿里云OSS文件上传、下载、查看、删除

    SpringBoot整合阿里云OSS文件上传.下载.查看.删除 该项目源码地址:https://github.com/ggb2312/springboot-integration-examples ( ...

  5. 发布阿里云OSS for phpcmsV9整合教程

    说明:这个算不上是插件,因为没有安装包,需要手工修改代码. 还有一点就是后台发布文章时上传的附件还是会保存在你的服务器上,基于以下原因: 1.个人的需求是前台页面需要使用thumb函数生成多个缩略图大 ...

  6. 阿里云oss对象存储实现自定义域名

    阿里云oss对象存储实现自定义域名 阿里云OSS配置域名 创建bucket 选择bucket,找到对应的域名管理,绑定用户域名 测试是否成功 参考博客 阿里云OSS域名配置及简单上传

  7. php tp5上传图片到阿里云OSS

    1.登录阿里云OSS管理控制台创建Bucket (写入名称,这个我已经创建过了,我接下来会用到,注意Endpoint,后面会用到) 为了方便管理图片,可以在Bucket多建目录进行存放: 2.在tp5 ...

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

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

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

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

最新文章

  1. 什么是物联网网关?物联网网关具备什么功能?_转
  2. 使用java.util.LinkedList模拟实现内存页面置换算法--LRU算法
  3. 什css3新增的属性,CSS
  4. DataTables提示:DataTables warning: table id=queueInfo_table - Requested unknown parameter 'type' for r
  5. 新书首发 | 《机器学习 公式推导与代码实现》正式出版!(文末送书)
  6. ionic3 自动创建启动背景splash以及图标icon
  7. docker build 变量_DockerFile 设置环境变量
  8. 水滴公司再回应“线下违规”:核心是公司的管理问题
  9. 4. Linux 高性能服务器编程 --- TCP/IP 通信
  10. linux是否32位系统文件夹,技术|如何判断Unix系统的一个库文件是32位还是64位的...
  11. LeetCode 49 - Group Anagram 归类同构字
  12. SSM大学生心理健康服务平台毕业设计-附源码071131
  13. 四六级阅读难点--选词填空题的一般解题思路
  14. Android微信页面缓存清理,安卓用户如何彻底清理微信大量缓存?4招让你彻底解决内存烦恼...
  15. Javascrpt测试
  16. TLS版本及CipherSuites确认及设置
  17. Android应用性能剖析全攻略
  18. 华硕笔记本重装系统bios设置
  19. 微积分Z2 J2 典型函数
  20. 百度地图android HD版,百度地图HD版

热门文章

  1. 更改Colab的CUDA以及cudnn
  2. 浮点运算/半精度,单精度,双精度/浮点和定点
  3. python金融数据分析单元测试答案_参考答案2020智慧树知到Python金融数据分析
  4. Spark 写入 MySQL 乱码问题
  5. 【NOIP模拟】序列
  6. 数据库原理 ODBC概述
  7. ORB-SLAM2工作原理总结
  8. 计算机在生物工程的应用,计算机在化学化工及生物工程中的应用
  9. Unlawfully wed 小小新娘 | 经济学人中英双语对照精读笔记
  10. 一键改计算机名字,上万文件如何快速批量重命名?原来只要一键就能搞定!-批量改文件名...