下面我将介绍一个完整的Spring Boot集成阿里云OSS上传文件系统的完整攻略。
1. 引入依赖
我们首先需要在pom.xml文件中引入阿里云OSS的Java SDK依赖,如下所示:
<dependencies>
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.4</version>
</dependency>
</dependencies>
2. 配置OSS信息
在application.yml(或application.properties)文件中配置阿里云OSS访问信息:
aliyun:
oss:
endpoint: oss-cn-hangzhou.aliyuncs.com # 阿里云OSS地域域名
accessKeyId: <your-accessKeyId> # 阿里云OSS的accessKeyId
accessKeySecret: <your-accessKeySecret> # 阿里云OSS的accessKeySecret
bucketName: <your-bucketName> # 阿里云OSS的bucketName
folder: <your-folder> # 存放上传文件的目录
3. 上传文件
使用Java SDK上传文件到阿里云OSS,示例代码如下:
@Service
public class OSSService {
@Autowired
private OSSClient ossClient;
@Value("${aliyun.oss.bucketName}")
private String bucketName;
@Value("${aliyun.oss.folder}")
private String folder;
/**
* 上传文件,返回文件在OSS的存储路径
*/
public String upload(File file){
// 生成唯一文件名
String fileName = UUID.randomUUID().toString().replace("-", "");
// 获取文件扩展名
String extension = file.getName().substring(file.getName().lastIndexOf("."));
// 拼接OSS文件名
String ossName = folder + "/" + fileName + extension;
try {
// 创建上传请求
PutObjectRequest request = new PutObjectRequest(bucketName,ossName,file);
// 执行上传请求
ossClient.putObject(request);
// 返回文件的访问地址
return "https://"+bucketName+"."+ossClient.getEndpoint().toString().replace("http://","").replace("https://","")+"/"+ossName;
} catch (OSSException | ClientException e) {
e.printStackTrace();
}
return null;
}
}
4. 下载文件
使用Java SDK从阿里云OSS下载文件,示例代码如下:
@Service
public class OSSService {
@Autowired
private OSSClient ossClient;
@Value("${aliyun.oss.bucketName}")
private String bucketName;
public byte[] download(String ossName){
try {
// 获取文件流
OSSObject ossObject = ossClient.getObject(bucketName, ossName);
InputStream inputStream = ossObject.getObjectContent();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// 读取文件内容到内存中
byte[] buffer = new byte[4096];
int len;
while ((len = inputStream.read(buffer, 0, buffer.length)) != -1) {
byteArrayOutputStream.write(buffer, 0, len);
}
byteArrayOutputStream.flush();
inputStream.close();
byteArrayOutputStream.close();
// 返回文件内容
return byteArrayOutputStream.toByteArray();
} catch (OSSException | ClientException | IOException e) {
e.printStackTrace();
}
return null;
}
}
以上就是Spring Boot集成阿里云OSS上传文件系统的完整攻略。如果想要了解更多细节,请参考阿里云OSS官方文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot集成阿里云OSS上传文件系统教程 - Python技术站