使用天翼云对象存储服务
本文介绍如何使用天翼云对象存储服务
安全凭证
在注册天翼云账号之后,进入控制台,创建秘钥,拿到AccessKeyID和SecretAccessKey用于访问对象存储API
下载SDK
在官网选择对于的jar包https://www.ctyun.cn/h5/help2/10000101/10001740
POM文件配置
在pom.xml中加入以下配置
cn.ctyun
oos-sdk
6.5.0
system
jar
${project.basedir}/src/main/resources/lib/oos-sdk-6.5.0.jar
commons-httpclient
commons-httpclient
3.1
org.apache.httpcomponents
httpclient
4.5.2
joda-time
joda-time
2.10.3
OSS配置import com.amazonaws.ClientConfiguration;
import com.amazonaws.Protocol;
import com.amazonaws.auth.PropertiesCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.S3ClientOptions;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class OOSConfig {
@Value("${OOS_ACCESS_KEY}")
private String accessKey;
@Value("${OOS_SECRET_KEY}")
private String secretKey;
@Value("${OOS_ENDPOINT}")
private String endpoint;
@Bean
public AmazonS3 oosClient() {
ClientConfiguration clientConfig = new ClientConfiguration();
//设置连接的超时时间,单位毫秒
clientConfig.setConnectionTimeout(30 * 1000);
//设置 socket 超时时间,单位毫秒
clientConfig.setSocketTimeout(30 * 1000);
clientConfig.setProtocol(Protocol.HTTP); //设置 http
//设置 V4 签名算法中负载是否参与签名,关于签名部分请参看《OOS 开发者文档》
S3ClientOptions options = new S3ClientOptions();
options.setPayloadSigningEnabled(true);
// 创建 client
AmazonS3 oosClient = new AmazonS3Client(
new PropertiesCredentials(accessKey,
secretKey), clientConfig);
// 设置 endpoint
oosClient.setEndpoint(endpoint);
//设置选项
oosClient.setS3ClientOptions(options);
return oosClient;
}
}
创建Bucketpublic void createBucket(String bucketName) {
Bucket bucketInfo = ossClient.createBucket(bucketName,"ChengDu","ShenYang");
}
查询Bucketpublic void listBuckets() {
List listBuckets = ossClient.listBuckets();
for (Bucket bucketInfo : listBuckets) {
System.out.println("listBuckets:"
+ "\t Name:" + bucketInfo.getName()
+ "\t CreationDate:" + bucketInfo.getCreationDate());
}
}
删除Bucketpublic void deleteBucket(String bucketName) {
ossClient.deleteBucket(bucketName);
}
上传文件public String uploadFile(InputStream inputStream, String fileName) {
String key = generateKey(fileName);
PutObjectRequest request = new PutObjectRequest(bucketName, key, inputStream, null);
request.setStorageClass(StorageClass.ReducedRedundancy);
PutObjectResult result = ossClient.putObject(request);
URL url = ossClient.generatePresignedUrl(new GeneratePresignedUrlRequest(bucketName, key));
return String.valueOf(url);
}
删除文件public void deleteFile(String fileKey) {
ossClient.deleteObject(bucketName, fileKey);
}
获取文件下载地址public String getDownloadUrl(String fileKey) {
GeneratePresignedUrlRequest request = new
GeneratePresignedUrlRequest(bucketName, fileKey);
URL url = ossClient.generatePresignedUrl(request);
return url.toString();
}