新建一个config类

  • AliyunOSS.java
@Configuration
@Data
public class AliyunOSS {
private OSSClient ossClient; @Value("${images-roland.file.endpoint}")
private String endpoint; @Value("${images-roland.file.keyid}")
private String accessKeyId; @Value("${images-roland.file.keysecret}")
private String secretAccessKey; @Value("${images-roland.file.filehost}")
private String file_filehost; @Value("${images-roland.file.bucketname1}")
private String bucketname1; @Bean("ossClients")
public OSSClient ossClient(){
return new OSSClient(endpoint,accessKeyId,secretAccessKey);
}
}

然后在yml中配置你的阿里云信息

images-roland:
file:
endpoint: oss-cn-shenzhen.aliyuncs.com
keyid: ********
keysecret: ********
bucketname: roland
filehost: images/
show_image_host: https://***.oss-cn-shenzhen.aliyuncs.com/

然后你就可以在你的业务层使用AliyunOSS啦

@Autowired
AliyunOSS aliyunOSS;

个人使用的util类


import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.CannedAccessControlList;
import com.aliyun.oss.model.CreateBucketRequest;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import org.manage.management.permission.config.ConstantProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import java.io.File;
import java.io.FileInputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID; /**
* Created by lightClouds917
* Date 2018/2/7
* Description:aliyunOSSUtil
*/
@Slf4j
@Component
public class AliyunOSSUtil { private static OSSClient ossClients; @Autowired
public AliyunOSSUtil(OSSClient ossClients) {
AliyunOSSUtil.ossClients = ossClients;
} public static String upload(File file){
log.info("=========>OSS文件上传开始:"+file.getName());
// System.out.println(ossClients); String bucketName=ConstantProperties.BUCKET_NAME1;
String fileHost=ConstantProperties.FILE_HOST; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = format.format(new Date()); if(null == file){
return "";
} OSSClient ossClient = ossClients;
System.out.println(ossClient);
try {
//容器不存在,就创建
if(! ossClient.doesBucketExist(bucketName)){
ossClient.createBucket(bucketName);
CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
ossClient.createBucket(createBucketRequest);
}
//创建文件路径
String fileUrl = fileHost+"/"+(dateStr + "/" + UUID.randomUUID().toString().replace("-","")+"-"+file.getName());
//上传文件
PutObjectResult result = ossClient.putObject(new PutObjectRequest(bucketName, fileUrl, file));
//设置权限 这里是公开读
ossClient.setBucketAcl(bucketName,CannedAccessControlList.PublicRead);
if(null != result){
log.info("==========>OSS文件上传成功,OSS地址:"+fileUrl);
return fileUrl;
}
}catch (OSSException oe){
log.error(oe.getMessage()); }catch (ClientException ce){
log.error(ce.getMessage()); }finally {
//关闭
// ossClient.shutdown();
}
return null;
}
public static String uploads(File file){
String bucketName=ConstantProperties.BUCKET_NAME1;
String fileHost=ConstantProperties.FILE_HOST; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = format.format(new Date()); if(null == file){
return null;
} // OSSClient ossClient = ossClients; // 创建OSSClient实例。
OSSClient ossClient = ossClients;
String fileUrl = fileHost+"/"+(dateStr + "/" + UUID.randomUUID().toString().replace("-","")+"-"+file.getName());
try {
// 带进度条的上传。
ossClient.putObject(new PutObjectRequest(bucketName, fileUrl, new FileInputStream(file)).
<PutObjectRequest>withProgressListener(new PutObjectProgressListener())); } catch (Exception e) {
e.printStackTrace();
}
// 关闭OSSClient。
// ossClient.shutdown();
return null;
}
}

SpringBoot完美配置阿里云的文件上传的更多相关文章

  1. 构建基于阿里云OSS文件上传服务

    转载请注明来源:http://blog.csdn.net/loongshawn/article/details/50710132 <构建基于阿里云OSS文件上传服务> <构建基于OS ...

  2. 记一次阿里云oss文件上传服务假死

    引言 记得以前刚开始学习web项目的时候,经常涉及到需要上传图片啥的,那时候都是把图片上传到当前项目文件夹下面,每次项目一重启图片就丢了.虽然可以通过修改/tomcat/conf/server.xml ...

  3. PHP实现阿里云OSS文件上传(支持批量)

    上传文件至阿里云OSS,整体逻辑是,文件先临时上传到本地,然后在上传到OSS,最后删除本地的临时文件(也可以不删,具体看自己的业务需求),具体实现流程如下:   1.下载阿里云OSS对象上传SDK(P ...

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

    1. 开发前准备 1.1 前置知识 java基础以及SpringBoot简单基础知识即可. 1.2 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 所用技术:SpringBoot.lom ...

  5. 阿里云OSS文件上传封装

    1.先用composer安装阿里云OSS的PHPSDK 2.配置文件里定义阿里云OSS的秘钥 3.在index控制器里的代码封装 <?php namespace app\index\contro ...

  6. php阿里云oss文件上传

    php的文件上传 文件上传 php的文件上传放在了$_FILES数组里,单文件和多文件上传的区别在于$_FILES['userfile']['name']是否为数组, 不熟悉的可以读一下官方文档 单文 ...

  7. 记录-阿里云Oss文件上传

    public class OssUtil { /** * 上传图片 * @param file * @param request * @return */ public static Map<S ...

  8. Thinkphp整合阿里云OSS图片上传实例

    Thinkphp3.2整合阿里云OSS图片上传实例,图片上传至OSS可减少服务器压力,节省宽带,安全又稳定,阿里云OSS对于做负载均衡非常方便,不用传到各个服务器了 首先引入阿里云OSS类库 < ...

  9. redisTemplate实现轻量级消息队列, 异步处理excel并实现腾讯云cos文件上传下载

    背景 公司项目有个需求, 前端上传excel文件, 后端读取数据.处理数据.返回错误数据, 最简单的方式同步处理, 客户端上传文件后一直阻塞等待响应, 但用户体验无疑很差, 处理数据可能十分耗时, 没 ...

随机推荐

  1. Windows远程桌面相关

    3389端口是Windows系统远程终端服务以及系统远程桌面服务默认所使用的端口,原本是为了管理人员能够方便的远程维护管理计算机而设计的,但如今已经成为了黑客们最喜爱的一种人侵途径,入侵者通过3389 ...

  2. 背包问题——dfs

    背包问题——dfs 问题描述   解决思路 采用DFS搜索 其实也是回溯法 代码实现 #include<iostream> #include<vector> using nam ...

  3. 平时作业七 Java

    以下是几本计算机书籍的基本信息编号 书名 价格 出版社1 JAVA基础 32 清华大学出版社2 JAVA WEB开发 40 电子工业出版社3 面向对象程序设计 28 清华大学出版社4 Struts开发 ...

  4. 记录一次大量CLOSE_WAIT的情况

    近期的项目中,有一个特殊的需求,对于每个客户端程序有若干个机构,对于每个机构有不同的客户端证书,程序间隔一段时间向服务端进行请求,根据请求的成功与否更新各机构的状态(如正常,证书未配置,证书过期等). ...

  5. VB读写进程的内存

    在窗体部分简单测试了ReadProcessMemory和WriteProcessMemory对另一个程序进程的读写. 由于临时项目变动,又不需要了,所以直接封类,删工程.以下代码没有一个函数经过测试, ...

  6. 10-HTTPServletReauest和HTTPServletResponse

    Servlet配置方式 1. 全路径匹配 以 / 开始 /a /aa/bb localhost:8080/项目名称/aa/bb 2. 路径匹配 , 前半段匹配 以 / 开始 , 但是以 * 结束 /a ...

  7. DataTable的Merge\COPY\AcceptChange使用说明

    在C#内使用DataTable的Merge().Copy().AcceptChange().Clone()方法的用途如下: 1.Merge()可将两个不同的表结构的表进行合并,合并后新表的列为之前两表 ...

  8. ef.core Mysql

    Entity层 using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; ...

  9. python爬虫第五天

            cookie           我们访问网页是通过http协议进行的,而http协议是一个无状态协议(无法维持会话之间的状态),比如我们登录一个网站成功后访问另一个网页,那么登录状态 ...

  10. extremecomponents

    具体教程: http://www.cnblogs.com/QQParadise/articles/1488920.html 教程中涉及到springmvc的相关知识 下载地址:http://sourc ...