应用天翼云对象存储服务

本文介绍如何应用天翼云对象存储服务

平安凭证

在注册天翼云账号之后,进入控制台,创立秘钥,拿到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;@Configurationpublic 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();    }