目录
以官网的文档为主,我的文章教学为辅
官网有详细的视频介绍:
个人教学OSS操作: 前三步骤是OSS准备过程,第四步骤是OSS实操示例
1.创建一个Bucket
将读写权限设置为公共读
创建后从中获取:endpoint(创建的bucket选择的区域)、bucketName(所创建的bucket)
2.创建密钥AccessKey
保存好密钥AccessKey
创建后从中获取:accessKeyId(所创建密钥AccessKeyId)、accessKeySecret(所创建密钥AccessKeySecret)
3.在文档中心打开阿里云对象存储OSS
在SDK示例中,根据官方文档去写
4.参考上传文件示例
以下是阿里云Oss工具类上传文件的示例代码,只需要补充对应的
endpoint(创建的bucket选择的区域)、accessKeyId(所创建密钥AccessKey)、accessKeySecret(所创建密钥AccessKey)、bucketName(所创建的bucket)即可直接使用;
简单介绍一下,下面的使用方式,upload方法需要传递两个参数,一个是文件,另一个是为了便于分类选择的模块名,这样上传后就会根据对应的模块名分为对应的目录,而文件将存储于对应的目录名中。注意:上传文件后会返回文件的url路径,这个可以存储到数据库中,这样访问该文件就直接访问该url即可。
/**
* 阿里云 OSS 工具类
*/
@Component
public class AliOSSUtils {
private String endpoint = "https://oss-cn-guangzhou.aliyuncs.com";
private String accessKeyId = "";
private String accessKeySecret = "";
private String bucketName = "";
/**
* 实现上传图片到OSS
*/
public String upload(MultipartFile file,String directory) throws IOException {
// 获取上传的文件的输入流
InputStream inputStream = file.getInputStream();
// 避免文件覆盖
String originalFilename = file.getOriginalFilename();
String fileName = directory + "/" + UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));
//上传文件到 OSS
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.putObject(bucketName, fileName, inputStream);
//文件访问路径
String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName;
// 关闭ossClient
ossClient.shutdown();
return url;// 把上传到oss的路径返回
}
}