新建一个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. 解决Spring boot中读取属性配置文件出现中文乱码的问题

    问题描述: 在配置文件application.properties中写了 server.port=8081 server.servlet.context-path=/boy name=张三 age=2 ...

  2. Android常规布局方式和方法

    一.关于给控件添加ID属性 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xm ...

  3. css 控制横向布局,超出隐藏,滚动

    <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta cha ...

  4. python学习笔记(3)

    .................................................................................................... ...

  5. Spring源码Gradle

    Microsoft Windows [版本 10.0.17134.590](c) 2018 Microsoft Corporation.保留所有权利. D:\Workspaces\idea\sprin ...

  6. EXCLE 导入 或 导出

    首先要引用 NPOI.dll   (可在网上下载!)//导入public void OnSubmit()        {            string path = Server.MapPat ...

  7. PyCharm下载及使用

    PyCharm教育版是一款能够对你编写Python程序的工作有所帮助的免费编译器. PyCharm-community下载链接:https://pan.baidu.com/s/1Hwd_TOVA3en ...

  8. Android Studio 设置不同分辨率的图标Icon

    右键你的项目 -->"NEW"-->"Image Asset" 'Asset Type' 勾选”Image“才可以选择”Path“,其他选项可以自己 ...

  9. css基础样式

    1.行间样式:在标签中添加<style>属性      格式:标签名 style="样式:样式值1;样式2=样式值2"   2.内嵌样式:在<head>&l ...

  10. [IOT] 自制蓝牙工牌办公室定位系统 (一)—— 阿里物联网平台概览及打通端到云(硬核·干货)

    目录:老少皆宜.超长干货文警告 1.快速入门创建产品 -- 小白,打包带走去吹牛 2.代码分析 -- 老炮,快速了解能用上 2.1 从start.sh分析开发环境如何自动构建 2.2 从sample. ...