本篇小编将不废话的直接给服务器部署上oss服务实现文件上传
一、申请oss服务
1、开通oss服务
2、创建bucket
输入bucket后其他的不用管,注意要记住你选择地址的Endpoint !!!
3、创建密钥
二、部署服务端
1、引入依赖
在pom文件中引入如下
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.8.3</version>
</dependency>
2、配置配置项(application,本人用的是yml)
输入上所需要的信息
aliyun:
oss:
endpoint: oss地址 ----> 第大一步第小二步,让你保存的
accessKeyId: 密钥id
accessKeySecret: 密钥密码
bucketName: 你第一步创建banket输入的名字
(endpoint忘记也没关系,一般的话就是: oss-cn-你选择的地址全拼.aliyuncs.com)
3、创建属性类,
@Data
@Component
@ConfigurationProperties(prefix="aliyun.oss")
public class Aly {
private String endpoint;
private String accessKeyId;
private String accessKeySecret;
private String bucketName;
}
\\ 如果Data爆红(没有安装lombok)需要手写get和set方法
4、创建aly上传的工具类
可以直接复制我下面的代码:
@Component
public class AlyUtil {
@Autowired
private Aly aly;
public String upload(MultipartFile file) throws IOException {
String endpoint = aly.getEndpoint();
String accessKeyId=aly.getAccessKeyId();
String accessKeySecret= aly.getAccessKeySecret();
String bucketName = aly.getBucketName();
// 获取上传的文件的输入流
InputStream inputStream = file.getInputStream();
// 避免文件覆盖
String originalFilename = file.getOriginalFilename();
String extension = "";
int lastIndex = originalFilename.lastIndexOf(".");
if (lastIndex >= 0) {
extension = originalFilename.substring(lastIndex);
}
String fileName = UUID.randomUUID().toString() + extension;
//上传文件到 OSS
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.putObject(bucketName, fileName, inputStream);
//文件访问路径
String url="https://"+bucketName+"."+endpoint+"/"+fileName;
// 关闭ossClient
ossClient.shutdown();
return url;// 把上传到oss的路径返回
}
}
5、创建controller接口
如下将直接返回一个你上传文件的url地址
@Autowired
private AlyUtil alyUtil;
@PostMapping("/getUrl")
public String getUrl(@RequestParam("file") MultipartFile file) throws IOException {
String url= alyUtil.upload(file);
return url;
}
三、验证
这边小编直接使用的postman测试(小编用的是自己的项目进行的测试),
如图data中即为存储的信息,可以用于直接访问