本文介绍如何使用天翼云对象存储服务java
在注册天翼云帐号以后,进入控制台,建立秘钥,拿到AccessKeyID和SecretAccessKey用于访问对象存储API算法
在官网选择对于的jar包spring
https://www.ctyun.cn/h5/help2/10000101/10001740
在pom.xml中加入如下配置apache
<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>
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; } }
public void createBucket(String bucketName) { Bucket bucketInfo = ossClient.createBucket(bucketName,"ChengDu","ShenYang"); }
public void listBuckets() { List<Bucket> listBuckets = ossClient.listBuckets(); for (Bucket bucketInfo : listBuckets) { System.out.println("listBuckets:" + "\t Name:" + bucketInfo.getName() + "\t CreationDate:" + bucketInfo.getCreationDate()); } }
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(); }