应用天翼云对象存储服务
本文介绍如何应用天翼云对象存储服务
平安凭证
在注册天翼云账号之后,进入控制台,创立秘钥,拿到 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();}