下面是“SpringBoot使用阿里OSS实现文件云存储的方法”的完整攻略。
一、前置条件
在开始之前,需要先获取一个阿里云OSS账号,并创建一个Bucket用于存储文件。同时在本地安装好SpringBoot环境和Maven。
二、导入依赖
首先,在pom.xml文件中添加阿里云OSS依赖:
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.1</version>
</dependency>
三、配置OSS Client
创建一个阿里云OSS Client的配置类OSSConfig,并在该类中配置AK、SK、Endpoint和Bucket等信息:
@Configuration
public class OSSConfig {
@Value("${aliyun.oss.endpoint}")
private String endpoint;
@Value("${aliyun.oss.accessKeyId}")
private String accessKeyId;
@Value("${aliyun.oss.accessKeySecret}")
private String accessKeySecret;
@Value("${aliyun.oss.bucketName}")
private String bucketName;
@Bean
public OSS ossClient() {
return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
}
@Bean
public String bucketName() {
return bucketName;
}
}
四、编写文件上传接口
创建一个文件上传的API,并在该API中调用OSS Client实现文件云存储功能:
@RestController
@RequestMapping("/oss")
public class OssController {
@Autowired
private OSS ossClient;
@Autowired
private String bucketName;
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException {
String originalFilename = file.getOriginalFilename();
// 生成一个随机的存储路径
String prefix = UUID.randomUUID().toString();
String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
String objectName = prefix + suffix;
// 上传文件到阿里云OSS
ossClient.putObject(bucketName, objectName, file.getInputStream());
// 返回文件在OSS上的URL地址
return "https://" + bucketName + "." + ossClient.getEndpoint().toString().replace("http://", "") + "/" + objectName;
}
}
五、测试上传文件
启动SpringBoot应用,使用Postman等工具测试文件上传接口,并根据response返回的文件URL在OSS控制台中查看上传文件是否成功。同时,也可以在代码中添加下载文件、删除文件等接口,实现文件操作的完整功能。
示例一:上传本地文件到OSS
public class OssUploadFileExample {
public static void main(String[] args) throws IOException {
String fileName = "xxx.png";
// 通过文件路径创建File对象
File file = new File("C:\\Users\\xxx\\Pictures\\" + fileName);
// 创建阿里云OSS Client
OSS ossClient = new OSSClientBuilder().build("*** YourEndpoint ***", "*** YourAccessKeyId ***", "*** YourAccessKeySecret ***");
// 上传文件到阿里云OSS
ossClient.putObject("*** YourBucketName ***", fileName, new FileInputStream(file));
// 关闭OSS Client
ossClient.shutdown();
}
}
示例二:下载文件到本地
public class OssDownloadFileExample {
public static void main(String[] args) throws IOException {
String fileName = "xxx.png";
String localFilePath = "C:\\Users\\xxx\\Downloads\\";
// 创建阿里云OSS Client
OSS ossClient = new OSSClientBuilder().build("*** YourEndpoint ***", "*** YourAccessKeyId ***", "*** YourAccessKeySecret ***");
// 下载文件到本地
ossClient.getObject(new GetObjectRequest("*** YourBucketName ***", fileName), new File(localFilePath + fileName));
// 关闭OSS Client
ossClient.shutdown();
}
}
以上就是这篇“SpringBoot使用阿里OSS实现文件云存储的方法”的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot使用阿里OSS实现文件云存储的方法 - Python技术站