使用天翼云对象存储服务
本文介绍如何使用天翼云对象存储服务
安全凭证
在注册天翼云账号之后,进入控制台,创建秘钥,拿到AccessKeyID和SecretAccessKey用于访问对象存储API
下载SDK
在官网选择对于的jar包
https://www.ctyun.cn/h5/help2/10000101/10001740
POM文件配置
在pom.xml中加入以下配置
<dependency>
<groupId>cn.ctyun</groupId>
<artifactId>oos-sdk</artifactId>
<version>6.5.0</version>
<scope>system</scope>
<type>jar</type>
<systemPath>${project.basedir}/src/main/resources/lib/oos-sdk-6.5.0.jar</systemPath>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.3</version>
</dependency>
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;
}
}
创建Bucket
public void createBucket(String bucketName) {
Bucket bucketInfo = ossClient.createBucket(bucketName,"ChengDu","ShenYang");
}
查询Bucket
public void listBuckets() {
List<Bucket> listBuckets = ossClient.listBuckets();
for (Bucket bucketInfo : listBuckets) {
System.out.println("listBuckets:"
+ "\t Name:" + bucketInfo.getName()
+ "\t CreationDate:" + bucketInfo.getCreationDate());
}
}
删除Bucket
public 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();
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。