1

使用天翼云对象存储服务

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

安全凭证

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

zero
49 声望6 粉丝

前进


« 上一篇
HashMap源码

引用和评论

0 条评论