主题
OSS 基础操作指南
快速开始
1. 注入服务
java
@Autowired
private IObjectStorageService ossService;2. 基础调用
java
// 上传
ObjectStorageResponse resp = ossService.upload(objectName, bytes);
// 下载
InputStream stream = ossService.download(objectName);
// 删除
ossService.delete(objectName);
// 获取临时 URL
String url = ossService.securityUrlStr(objectName, expirationMillis);上传操作
字节数组上传
适用于接收 MultipartFile 等场景。
java
@Service
public class UploadService {
@Autowired
private IObjectStorageService ossService;
public ObjectStorageResponse uploadFile(MultipartFile file) throws IOException {
String objectName = "uploads/" + System.currentTimeMillis() + "_" + file.getOriginalFilename();
return ossService.upload(objectName, file.getBytes());
}
}输入流上传
java
public ObjectStorageResponse uploadStream(String objectName, InputStream inputStream) {
return ossService.upload(objectName, inputStream);
}本地文件上传
java
public ObjectStorageResponse uploadLocalFile(String localFilePath) {
String objectName = "files/" + new File(localFilePath).getName();
return ossService.upload(objectName, localFilePath);
}下载操作
下载到本地文件
java
public void downloadFile(String objectName, String savePath) {
ossService.download(objectName, savePath);
}下载为输入流
java
public void processFile(String objectName) throws IOException {
try (InputStream stream = ossService.download(objectName)) {
// 处理文件流
}
}删除操作
java
public void deleteFile(String objectName) {
ossService.delete(objectName);
}配置方式
单数据源
yaml
digitalhainan:
component:
oss:
client-type: aliyun
endpoint: https://oss-cn-hangzhou.aliyuncs.com
access-key-id: xxx
access-key-secret: xxx
bucket-name: xxx
domain: https://your-domain.com # 可选多数据源(ds 模式)
yaml
digitalhainan:
component:
oss:
client-type: ds
default-ds: aliyun-oss
ds:
aliyun-oss:
client-type: aliyun
endpoint: https://oss-cn-hangzhou.aliyuncs.com
access-key-id: xxx
access-key-secret: xxx
bucket-name: bucket1
huawei-obs:
client-type: obs
endpoint: https://obs.cn-north-4.myhuaweicloud.com
access-key-id: xxx
access-key-secret: xxx
bucket-name: bucket2
minio-s3:
client-type: s3
endpoint: http://localhost:9000
access-key-id: xxx
access-key-secret: xxx
bucket-name: bucket3
region: us-east-1
path-style-access: true支持的客户端类型: aliyun(默认)| obs | s3 | ds(动态多数据源)
核心方法速查
java
// 上传
upload(String objectName, byte[] bytes)
upload(String objectName, InputStream inputStream)
upload(String objectName, String localFile)
// 下载
download(String objectName) // 返回 InputStream
download(String objectName, String localFile) // 保存到本地
// 删除
delete(String objectName)
// URL
securityUrl(String objectName, Long expiration) // 返回 URL
securityUrlStr(String objectName, Long expiration) // 返回 String
getObjectUrl(String objectName) // 自定义域名 URL
getDefaultObjectUrl(String objectName) // 默认域名 URL