关于oss:使用天翼云对象存储服务

76次阅读

共计 3089 个字符,预计需要花费 8 分钟才能阅读完成。

应用天翼云对象存储服务

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

平安凭证

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

正文完
 0