1. 准备工作:
一、首先登录阿里云OSS对象存储控制台创建一个Bucket作为你的存储空间 。二、创建Access Keyan按要求创建进行 。这里的方法步骤我就不展现出来了 。你们可以自行查询阿里云文档 。这个获取值本身就不难 。重点:记下你的AccessKey ID、AccessKey Secret以及你刚才创建的Buacket名字BucketName 。
2. 配置:
在pom里引入oss要用的依赖
<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version></dependency>在application.yml里面添加配置文件
#定义的端口号server:port:8080aliyun:oss:#yourEndpoint填写Bucket所在地域对应的Endpoint 。可在创建好的Bucket概况页查看 。endpoint:oss-cn-chengdu.aliyuncs.com#以成都为例 。Endpoint填写为https://oss-cn-chengdu.aliyuncs.com#阿里云账号AccessKey拥有所有API的访问权限 。风险很高 。强烈建议您创建并使用RAM用户进行API访问或日常运维 。请登录RAM控制台创建RAM用户accessKeyId:**********#阿里云账号AccessKey里所对应的AccessKeyIDaccessKeySecret:**********#阿里云账号AccessKey里所对应的AccessKeySecretbucketName:**********#OSS对象存储空间名3. 详细代码:
第一步:创建一个service包 。新建一个AliyunOssService.java
importorg.springframework.stereotype.Service;importorg.springframework.web.multipart.MultipartFile;importjava.util.Map;@ServicepublicinterfaceAliyunOssService{Map<String,Object>upload(MultipartFilefile,StringfileName);}第二步:在service包里创建一个impl包 。新建一个AliyunOssServiceImpl.java
importcom.system.demo.service.AliyunOssService;importcom.system.demo.util.FileUploadUtil;importorg.springframework.stereotype.Service;importorg.springframework.web.multipart.MultipartFile;importjavax.annotation.Resource;importjava.util.HashMap;importjava.util.Map;@Service("aliyunOssService")publicclassAliyunOssServiceImplimplementsAliyunOssService{@ResourceprivateFileUploadUtilfileUploadUtil;@OverridepublicMap<String,Object>upload(MultipartFilefile,StringfileName){//定义一个目录(这里的目录可根据自己实际情况自己拼接定义)Stringpath="a";//我这里就随便定义一个a文件夹//拼接 。这里将路径和文件名拼接在了一起fileName=path+"/"+fileName;Map<String,Object>map=newHashMap<>();map.put("code",200);map.put("msg","查询成功");map.put("data",this.fileUploadUtil.upload(file,fileName));returnmap;}}第三步:创建一个util包 。新建一个FileUploadUtil.java
importcom.aliyun.oss.OSS;importcom.aliyun.oss.OSSClientBuilder;importcom.aliyun.oss.model.ObjectMetadata;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.stereotype.Component;importorg.springframework.web.multipart.MultipartFile;importjava.io.IOException;importjava.io.InputStream;@ComponentpublicclassFileUploadUtil{@Value("${aliyun.oss.endpoint}")privateStringendpoint;@Value("${aliyun.oss.accessKeyId}")privateStringaccessKeyId;@Value("${aliyun.oss.accessKeySecret}")privateStringaccessKeySecret;@Value("${aliyun.oss.bucketName}")privateStringbucketName;publicStringupload(MultipartFilefile,StringfileName){//写入文件try{//获取上传的输入流InputStreaminputStream=file.getInputStream();//设置访问地址是默认是预览图片ObjectMetadatameta=newObjectMetadata();meta.setContentType("image/jpg");//创建OSSClient实例OSSossClient=newOSSClientBuilder().build(endpoint,accessKeyId,accessKeySecret);/*调用oss上传到阿里云对象存储oss----Bucket存储空间第一个参数bucket名称第二个参数文件名称第三个参数输入流第四个参数文件类型*/ossClient.putObject(bucketName,fileName,inputStream,meta);//删除文件 。如需删除文件夹 。请将ObjectName设置为对应的文件夹名称 。如果文件夹非空 。则需要将文件夹下的所有object删除后才能删除该文件夹 。//ossClient.deleteObject(bucketName,"a/");//关闭OSSClient 。ossClient.shutdown();//上传成功后获取文件路径Stringurl="https://"+bucketName+"."+endpoint+"/"+fileName;returnurl;}catch(IOExceptione){e.printStackTrace();}returnnull;}}第四步:定义接口创建一个controller包 。新建一个FileUpload.java
importcom.system.demo.service.impl.AliyunOssServiceImpl;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;importorg.springframework.web.bind.annotation.RestController;importorg.springframework.web.multipart.MultipartFile;importjavax.annotation.Resource;importjava.util.Map;@RestController@RequestMapping("oss")publicclassFileUpload{@ResourceprivateAliyunOssServiceImplaliyunOssServiceImpl;@RequestMapping(value=https://www.wangchuang8.com/"fileoss",method=RequestMethod.POST)publicMap
推荐阅读
- 2019年日本有多少“军队”?军事力量如何?
- 部门领导看不起自己部门的员工,总是对员工说能力太差,是不是应该辞职?
- 暑期招生方案怎么写 招生广告范文
- 若新疆籍现役最强五人组成一队,他们是否国内最强的一队?
- 那些曾经瞧不起你的人,现在怎么样了?
- 基金定投收益排名 2009.11.基金定投排名
- 朋友家富,我家穷,朋友看不起我,还能再交往下去吗?
- 批发什么最赚钱 6个好卖利润又高的产品
- 性格自卑被人当傻子,看不起怎么办?非常在意别人的看法?