SpringBoot中OSS文件存储(阿里云篇)
warning:
这篇文章距离上次修改已过213天,其中的内容可能已经有所变动。
在Spring Boot中使用阿里云OSS进行文件存储,你需要做以下几个步骤:
- 引入阿里云OSS依赖。
- 配置阿里云OSS参数。
- 创建OSSClient实例。
- 实现文件上传和其他OSS操作。
以下是一个简单的例子:
1. 添加依赖到pom.xml
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.6.0</version>
</dependency>
2. 在application.properties
中配置OSS参数
oss.endpoint=你的EndPoint
oss.accessKeyId=你的AccessKeyId
oss.accessKeySecret=你的AccessKeySecret
oss.bucketName=你的BucketName
3. 创建配置类
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class OssConfig {
@Value("${oss.endpoint}")
private String endpoint;
@Value("${oss.accessKeyId}")
private String accessKeyId;
@Value("${oss.accessKeySecret}")
private String accessKeySecret;
@Bean
public OSS ossClient() {
return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
}
}
4. 服务层实现文件上传
import com.aliyun.oss.OSS;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.UUID;
@Service
public class OssService {
@Autowired
private OSS ossClient;
@Value("${oss.bucketName}")
private String bucketName;
public String uploadFile(MultipartFile file) {
String fileName = file.getOriginalFilename();
String suffixName = fileName.substring(fileName.lastIndexOf("."));
String uploadFileName = UUID.randomUUID().toString() + suffixName;
try (InputStream inputStream = file.getInputStream()) {
ossClient.putObject(bucketName, uploadFileName, inputStream);
return "https://" + bucketName + "." + endpoint + "/" + uploadFileName;
} catch (Exception e) {
e.printStackTrace();
return null;
}
评论已关闭