存储桶管理

最近更新时间:2019-04-30 17:17:15

简介

本文档提供关于跨域访问和生命周期相关的 API 概览以及 SDK 示例代码。

跨域访问

API 操作名 操作描述
PUT Bucket cors 设置跨域配置 设置 Bucket 的跨域访问权限
GET Bucket cors 查询跨域配置 查询 Bucket 的跨域名访问配置信息
DELETE Bucket cors 删除跨域配置 删除 Bucket 的跨域访问配置信息

生命周期

API 操作名 操作描述
PUT Bucket lifecycle 设置生命周期 设置 Bucket 的生命周期管理的配置
GET Bucket lifecycle 查询生命周期 查询 Bucket 生命周期管理的配置
DELETE Bucket lifecycle 删除生命周期 删除 Bucket 生命周期管理的配置

跨域访问

设置跨域配置

功能说明

设置指定存储桶的跨域访问配置信息(PUT Bucket cors)。

方法原型

PutBucketCORSResult putBucketCORS(PutBucketCORSRequest request) throws CosXmlClientException, CosXmlServiceException;

void putBucketCORSAsync(PutBucketCORSRequest request, CosXmlResultListener cosXmlResultListener);

请求示例

String bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
PutBucketCORSRequest putBucketCORSRequest = new PutBucketCORSRequest(bucket);

/**
 * CORSConfiguration.cORSRule: 跨域访问配置信息
 * corsRule.id: 配置规则的 ID
 * corsRule.allowedOrigin: 允许的访问来源,支持通配符 * , 格式为:协议://域名[:端口],如:http://www.qq.com
 * corsRule.maxAgeSeconds: 设置 OPTIONS 请求得到结果的有效期
 * corsRule.allowedMethod: 允许的 HTTP 操作,如:GET,PUT,HEAD,POST,DELETE
 * corsRule.allowedHeader:在发送 OPTIONS 请求时告知服务端,接下来的请求可以使用哪些自定义的 HTTP 请求头部,支持通配符 *
 * corsRule.exposeHeader: 设置浏览器可以接收到的来自服务端的自定义头部信息
 */
CORSConfiguration.CORSRule corsRule = new CORSConfiguration.CORSRule();

corsRule.id = "123";
corsRule.allowedOrigin = "https://cloud.tencent.com";
corsRule.maxAgeSeconds = 5000;

List<String> methods = new LinkedList<>();
methods.add("PUT");
methods.add("POST");
methods.add("GET");
corsRule.allowedMethod = methods;

List<String> headers = new LinkedList<>();
headers.add("host");
headers.add("content-type");
corsRule.allowedHeader = headers;

List<String> exposeHeaders = new LinkedList<>();
headers.add("x-cos-metha-1");
corsRule.exposeHeader = headers;

//设置跨域访问配置信息
putBucketCORSRequest.addCORSRule(corsRule);

// 使用同步方法
try {
    PutBucketCORSResult putBucketCORSResult = cosXmlService.putBucketCORS(putBucketCORSRequest);
} catch (CosXmlClientException e) {
    e.printStackTrace();
} catch (CosXmlServiceException e) {
    e.printStackTrace();
}

// 使用异步回调请求
cosXmlService.putBucketCORSAsync(putBucketCORSRequest, new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest request, CosXmlResult result) {
        // todo Put Bucket CORS success
        PutBucketCORSResult putBucketCORSResult = (PutBucketCORSResult)result;
    }

    @Override
    public void onFail(CosXmlRequest cosXmlRequest, CosXmlClientException clientException, CosXmlServiceException serviceException)  {
        // todo Put Bucket CORS failed because of CosXmlClientException or CosXmlServiceException...
    }
});

说明:

请求时,如需直接设置已计算好的签名串,则可通过调用 putBucketCORSRequest.setSign("已计算好的签名串") 方法设置,默认由 SDK 计算签名串。

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
corsRule addCORSRule 设置存储桶的跨域访问配 CORSConfiguration.CORSRule
headerKeys setSign 签名是否校验 header Set<String>
queryParameterKeys setSign 签名是否校验请求 url 中的查询参数 Set<String>
cosXmlResultListener putBucketCORSAsync 结果回调 CosXmlResultListener

返回结果说明

通过 PutBucketCORSResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败

说明:

操作失败时,SDK 将抛出 CosXmlClientExceptionCosXmlServiceException 异常。

查询跨域配置

功能说明

查询指定存储桶的跨域访问配置信息(GET Bucket cors)。

方法原型

GetBucketCORSResult getBucketCORS(GetBucketCORSRequest request) throws CosXmlClientException, CosXmlServiceException;

void getBucketCORSAsync(GetBucketCORSRequest request, CosXmlResultListener cosXmlResultListener);

请求示例

String bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
GetBucketCORSRequest getBucketCORSRequest = new GetBucketCORSRequest(bucket);

//使用同步方法
try {
    GetBucketCORSResult getBucketCORSResult = cosXmlService.getBucketCORS(getBucketCORSRequest);
} catch (CosXmlClientException e) {
    e.printStackTrace();
} catch (CosXmlServiceException e) {
    e.printStackTrace();
}

// 使用异步回调请求
cosXmlService.getBucketCORSAsync(getBucketCORSRequest, new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest request, CosXmlResult result) {
        // todo Get Bucket CORS success
        GetBucketCORSResult getBucketCORSResult = (GetBucketCORSResult)result;
    }

    @Override
    public void onFail(CosXmlRequest cosXmlRequest, CosXmlClientException clientException, CosXmlServiceException serviceException)  {
        // todo Get Bucket CORS failed because of CosXmlClientException or CosXmlServiceException...
    }
});

说明:

请求时,如需直接设置已计算好的签名串,则可通过调用 getBucketCORSRequest.setSign("已计算好的签名串") 方法设置,默认由 SDK 计算签名串。

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
headerKeys setSign 签名是否校验 header Set<String>
queryParameterKeys setSign 签名是否校验请求 url 中的查询参数 Set<String>
cosXmlResultListener getBucketCORSAsync 结果回调 CosXmlResultListener

返回结果说明

通过 GetBucketCORSResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
corsConfiguration CORSConfiguration 返回 Bucket 跨域资源共享配置的信息

说明:

操作失败时,SDK 将抛出 CosXmlClientExceptionCosXmlServiceException 异常。

删除跨域配置

功能说明

删除指定存储桶的跨域访问配置(DELETE Bucket cors)。

方法原型

DeleteBucketCORSResult deleteBucketCORS(DeleteBucketCORSRequest request) throws CosXmlClientException, CosXmlServiceException;

void deleteBucketCORSAsync(DeleteBucketCORSRequest request, final CosXmlResultListener cosXmlResultListener);

请求示例

String bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
DeleteBucketCORSRequest deleteBucketCORSRequest = new DeleteBucketCORSRequest(bucket);

// 使用同步方法
try {
    DeleteBucketCORSResult deleteBucketCORSResult = cosXmlService.deleteBucketCORS(deleteBucketCORSRequest);
} catch (CosXmlClientException e) {
    e.printStackTrace();
} catch (CosXmlServiceException e) {
    e.printStackTrace();
}

// 使用异步回调请求
cosXmlService.deleteBucketCORSAsync(deleteBucketCORSRequest, new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest request, CosXmlResult result) {
        // todo Delete Bucket CORS success
        DeleteBucketCORSResult deleteBucketCORSResult = (DeleteBucketCORSResult)result;
    }

    @Override
    public void onFail(CosXmlRequest cosXmlRequest, CosXmlClientException clientException, CosXmlServiceException serviceException)  {
        // todo Delete Bucket CORS failed because of CosXmlClientException or CosXmlServiceException...
    }
});

说明:

请求时,如需直接设置已计算好的签名串,则可通过调用 deleteBucketCORSRequest.setSign("已计算好的签名串") 方法设置,默认由 SDK 计算签名串。

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
headerKeys setSign 签名是否校验 header Set<String>
queryParameterKeys setSign 签名是否校验请求 url 中的查询参数 Set<String>
cosXmlResultListener deleteBucketCORSAsync 结果回调 CosXmlResultListener

返回结果说明

通过 DeleteBucketCORSResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败

说明:

操作失败时,SDK 将抛出 CosXmlClientExceptionCosXmlServiceException 异常。

生命周期

设置生命周期

功能说明

设置指定存储桶的生命周期配置信息(PUT Bucket lifecycle)。

方法原型

PutBucketLifecycleResult putBucketLifecycle(PutBucketLifecycleRequest request) throws CosXmlClientException, CosXmlServiceException;

void putBucketLifecycleAsync(PutBucketLifecycleRequest request, CosXmlResultListener cosXmlResultListener);

请求示例

PutBucketLifecycleRequest putBucketLifecycleRequest = new PutBucketLifecycleRequest(bucket);

// 声明周期配置规则信息
LifecycleConfiguration.Rule rule = new LifecycleConfiguration.Rule();
rule.id = "Lifecycle ID";
LifecycleConfiguration.Filter filter = new LifecycleConfiguration.Filter();
filter.prefix = "prefix/";
rule.filter = filter;
rule.status = "Enabled or Disabled";
LifecycleConfiguration.Transition transition = new LifecycleConfiguration.Transition();
transition.days = 100;
transition.storageClass = COSStorageClass.STANDARD.getStorageClass();
putBucketLifecycleRequest.setRuleList(rule);

// 使用同步方法
try {
    PutBucketLifecycleResult putBucketLifecycleResult = cosXmlService.putBucketLifecycle(putBucketLifecycleRequest);
} catch (CosXmlClientException e) {
    e.printStackTrace();
} catch (CosXmlServiceException e) {
    e.printStackTrace();
}

// 使用异步回调请求
cosXmlService.putBucketLifecycleAsync(putBucketLifecycleRequest, new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest request, CosXmlResult result) {
        // todo Put Bucket Lifecycle success
        PutBucketLifecycleResult putBucketLifecycleResult = (PutBucketLifecycleResult)result;
    }

    @Override
    public void onFail(CosXmlRequest cosXmlRequest, CosXmlClientException clientException, CosXmlServiceException serviceException)  {
        // todo Put Bucket Lifecycle failed because of CosXmlClientException or CosXmlServiceException...
    }
});

说明:

请求时,如需直接设置已计算好的签名串,则可通过调用 putBucketLifecycleRequest.setSign("已计算好的签名串") 方法设置,默认由 SDK 计算签名串。

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
rule setRuleList 设置存储桶的生命周期配置 LifecycleConfiguration.Rule
headerKeys setSign 签名是否校验 header Set<String>
queryParameterKeys setSign 签名是否校验请求 url 中的查询参数 Set<String>
cosXmlResultListener putBucketLifecycleAsync 结果回调 CosXmlResultListener

返回结果说明

通过 PutBucketLifecycleResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败

说明:

操作失败时,SDK 将抛出 CosXmlClientExceptionCosXmlServiceException 异常。

查询生命周期

功能说明

查询指定存储桶的的生命周期(GET Bucket lifecycle)。

方法原型

GetBucketLifecycleResult getBucketLifecycle(GetBucketLifecycleRequest request) throws CosXmlClientException, CosXmlServiceException;

void getBucketLifecycleAsync(GetBucketLifecycleRequest request, CosXmlResultListener cosXmlResultListener);

请求示例

String bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
GetBucketLifecycleRequest getBucketLifecycleRequest = new GetBucketLifecycleRequest(bucket);

// 使用同步方法
try {
    GetBucketLifecycleResult getBucketLifecycleResult = cosXmlService.getBucketLifecycle(getBucketLifecycleRequest);
} catch (CosXmlClientException e) {
    e.printStackTrace();
} catch (CosXmlServiceException e) {
    e.printStackTrace();
}

// 使用异步回调请求
cosXmlService.getBucketLifecycleAsync(getBucketLifecycleRequest, new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest request, CosXmlResult result) {
        // todo Get Bucket Lifecycle success
        GetBucketLifecycleResult getBucketLifecycleResult = (GetBucketLifecycleResult)result;
    }

    @Override
    public void onFail(CosXmlRequest cosXmlRequest, CosXmlClientException clientException, CosXmlServiceException serviceException)  {
        // todo Get Bucket Lifecycle failed because of CosXmlClientException or CosXmlServiceException...
    }
});

说明:

请求时,如需直接设置已计算好的签名串,则可通过调用 getBucketLifecycleRequest.setSign("已计算好的签名串") 方法设置,默认由 SDK 计算签名串。

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
headerKeys setSign 签名是否校验 header Set<String>
queryParameterKeys setSign 签名是否校验请求 url 中的查询参数 Set<String>
cosXmlResultListener getBucketLifecycleAsync 结果回调 CosXmlResultListener

返回结果说明

通过 GetBucketLifecycleResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200,300)之间表示操作成功,否则表示操作失败
lifecycleConfiguration LifecycleConfiguration 返回 Bucket 的生命周期配置信息

说明:

操作失败时,SDK 将抛出 CosXmlClientExceptionCosXmlServiceException 异常。

删除生命周期

功能说明

删除指定存储桶的的生命周期(DELETE Bucket lifecycle)。

方法原型

DeleteBucketLifecycleResult deleteBucketLifecycle(DeleteBucketLifecycleRequest request) throws CosXmlClientException, CosXmlServiceException;

void deleteBucketLifecycleAsync(DeleteBucketLifecycleRequest request,CosXmlResultListener cosXmlResultListener);

请求示例

String bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
DeleteBucketLifecycleRequest deleteBucketLifecycleRequest = new DeleteBucketLifecycleRequest(bucket);

//使用同步方法
try {
    DeleteBucketLifecycleResult deleteBucketLifecycleResult = cosXmlService.deleteBucketLifecycle(deleteBucketLifecycleRequest);

} catch (CosXmlClientException e) {
    e.printStackTrace();
} catch (CosXmlServiceException e) {
    e.printStackTrace();
}

// 使用异步回调请求
cosXmlService.deleteBucketLifecycleAsync(deleteBucketLifecycleRequest, new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest request, CosXmlResult result) {
        // todo Delete Bucket Lifecycle success
        DeleteBucketLifecycleResult deleteBucketLifecycleResult = (DeleteBucketLifecycleResult)result;
    }

    @Override
    public void onFail(CosXmlRequest cosXmlRequest, CosXmlClientException clientException, CosXmlServiceException serviceException)  {
        // todo Delete Bucket Lifecycle failed because of CosXmlClientException or CosXmlServiceException...
    }
});

说明:

请求时,如需直接设置已计算好的签名串,则可通过调用 deleteBucketLifecycleRequest.setSign("已计算好的签名串") 方法设置,默认由 SDK 计算签名串。

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
headerKeys setSign 签名是否校验 header Set<String>
queryParameterKeys setSign 签名是否校验请求 url 中的查询参数 Set<String>
cosXmlResultListener deleteBucketLifecycleAsync 结果回调 CosXmlResultListener

返回结果说明

通过 DeleteBucketLifecycleResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200,300)之间表示操作成功,否则表示操作失败

说明:

操作失败时,SDK 将抛出 CosXmlClientExceptionCosXmlServiceException 异常。