SpringBoot完美配置阿里云的文件上传
新建一个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完美配置阿里云的文件上传的更多相关文章
- 构建基于阿里云OSS文件上传服务
转载请注明来源:http://blog.csdn.net/loongshawn/article/details/50710132 <构建基于阿里云OSS文件上传服务> <构建基于OS ...
- 记一次阿里云oss文件上传服务假死
引言 记得以前刚开始学习web项目的时候,经常涉及到需要上传图片啥的,那时候都是把图片上传到当前项目文件夹下面,每次项目一重启图片就丢了.虽然可以通过修改/tomcat/conf/server.xml ...
- PHP实现阿里云OSS文件上传(支持批量)
上传文件至阿里云OSS,整体逻辑是,文件先临时上传到本地,然后在上传到OSS,最后删除本地的临时文件(也可以不删,具体看自己的业务需求),具体实现流程如下: 1.下载阿里云OSS对象上传SDK(P ...
- SpringBoot整合阿里云OSS文件上传、下载、查看、删除
1. 开发前准备 1.1 前置知识 java基础以及SpringBoot简单基础知识即可. 1.2 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 所用技术:SpringBoot.lom ...
- 阿里云OSS文件上传封装
1.先用composer安装阿里云OSS的PHPSDK 2.配置文件里定义阿里云OSS的秘钥 3.在index控制器里的代码封装 <?php namespace app\index\contro ...
- php阿里云oss文件上传
php的文件上传 文件上传 php的文件上传放在了$_FILES数组里,单文件和多文件上传的区别在于$_FILES['userfile']['name']是否为数组, 不熟悉的可以读一下官方文档 单文 ...
- 记录-阿里云Oss文件上传
public class OssUtil { /** * 上传图片 * @param file * @param request * @return */ public static Map<S ...
- Thinkphp整合阿里云OSS图片上传实例
Thinkphp3.2整合阿里云OSS图片上传实例,图片上传至OSS可减少服务器压力,节省宽带,安全又稳定,阿里云OSS对于做负载均衡非常方便,不用传到各个服务器了 首先引入阿里云OSS类库 < ...
- redisTemplate实现轻量级消息队列, 异步处理excel并实现腾讯云cos文件上传下载
背景 公司项目有个需求, 前端上传excel文件, 后端读取数据.处理数据.返回错误数据, 最简单的方式同步处理, 客户端上传文件后一直阻塞等待响应, 但用户体验无疑很差, 处理数据可能十分耗时, 没 ...
随机推荐
- 解决Spring boot中读取属性配置文件出现中文乱码的问题
问题描述: 在配置文件application.properties中写了 server.port=8081 server.servlet.context-path=/boy name=张三 age=2 ...
- Android常规布局方式和方法
一.关于给控件添加ID属性 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xm ...
- css 控制横向布局,超出隐藏,滚动
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta cha ...
- python学习笔记(3)
.................................................................................................... ...
- Spring源码Gradle
Microsoft Windows [版本 10.0.17134.590](c) 2018 Microsoft Corporation.保留所有权利. D:\Workspaces\idea\sprin ...
- EXCLE 导入 或 导出
首先要引用 NPOI.dll (可在网上下载!)//导入public void OnSubmit() { string path = Server.MapPat ...
- PyCharm下载及使用
PyCharm教育版是一款能够对你编写Python程序的工作有所帮助的免费编译器. PyCharm-community下载链接:https://pan.baidu.com/s/1Hwd_TOVA3en ...
- Android Studio 设置不同分辨率的图标Icon
右键你的项目 -->"NEW"-->"Image Asset" 'Asset Type' 勾选”Image“才可以选择”Path“,其他选项可以自己 ...
- css基础样式
1.行间样式:在标签中添加<style>属性 格式:标签名 style="样式:样式值1;样式2=样式值2" 2.内嵌样式:在<head>&l ...
- [IOT] 自制蓝牙工牌办公室定位系统 (一)—— 阿里物联网平台概览及打通端到云(硬核·干货)
目录:老少皆宜.超长干货文警告 1.快速入门创建产品 -- 小白,打包带走去吹牛 2.代码分析 -- 老炮,快速了解能用上 2.1 从start.sh分析开发环境如何自动构建 2.2 从sample. ...