存储桶管理

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

简介

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

  • 我们假设您已经按照 快速入门 文档中的指引完成了 SDK 下载、安装和初始化的过程。
  • 查询时建议使用 Command+F 搜索到想要查询的接口,然后看我们给出的接口简单说明,复制示例到您的工程中运行。

    说明:

    如果需要了解接口的功能或者参数的意义,建议直接查看代码里的注释,Xcode 支持通过三指轻按、Force-touch 重按或者将鼠标停留在变量上,按 Control+Command+D 的方式查看它的释义。

跨域访问

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 生命周期管理的配置

跨域访问

设置跨域配置

方法原型

进行设置存储桶的 CORS 操作之前,需要导入头文件 QCloudCOSXML/QCloudCOSXML.h。在此之前您需要完成 初始化操作。先生成一个 QCloudPutBucketCORSRequest 实例,然后填入一些需要的额外限制条件,通过并获得内容。具体步骤如下:

  1. 实例化 QCloudPutBucketCORSRequest,设置存储桶,并且将需要的 CORS 装入 QCloudCORSRule 中,如果有多组 CORS 设置,可以将多个 QCloudCORSRule 放在一个 NSArray 里,然后将该数组填入 QCloudCORSConfiguration的 rules 属性里,放在 request 中。
  2. 调用 QCloudCOSXMLService 对象中的 PutBucketCORS 方法发出请求。
  3. 从回调的 finishBlock 中获取设置成功与否(error 是否为空),并且执行一些设置后的额外操作。

QCloudPutBucketCORSRequest 参数说明

参数名称 描述 类型 必填
bucket 存储桶名称,可在 COS V5 控制台 上面看到,命名格式:BucketName-APPID。例如 examplebucket-1250000000 NSString *
corsConfiguration 封装了 CORS 的具体参数 QCloudCORSConfiguration *

QCloudCORSConfiguration 参数说明

参数名称 描述 类型
rules 放置 CORS 的数组, 数组内容为 QCloudCORSRule 实例 NSArray<QCloudCORSRule* > *

QCloudCORSRule 参数说明

参数名称 描述 类型
identifier 配置规则的 ID NSString *
allowedMethod 允许的 HTTP 操作,枚举值:GET、PUT、HEAD、POST、DELETE NSArray <NSString*> *
allowedOrigin 允许的访问来源,支持通配符 *,格式为:协议://域名[:端口],例如:http://www.qq.com NSString *
allowedHeader 在发送 OPTIONS 请求时告知服务端,接下来的请求可以使用哪些自定义的 HTTP 请求头部,支持通配符 * NSArray <NSString * > *
maxAgeSeconds 设置 OPTIONS 请求得到结果的有效期 int
exposeHeader 设置浏览器可以接收到的来自服务器端的自定义头部信息 NSString *

示例

QCloudPutBucketCORSRequest* putCORS = [QCloudPutBucketCORSRequest new];
QCloudCORSConfiguration* cors = [QCloudCORSConfiguration new];

QCloudCORSRule* rule = [QCloudCORSRule new];
rule.identifier = @"sdk";
rule.allowedHeader = @[@"origin",@"host",@"accept",@"content-type",@"authorization"];
rule.exposeHeader = @"ETag";
rule.allowedMethod = @[@"GET",@"PUT",@"POST", @"DELETE", @"HEAD"];
rule.maxAgeSeconds = 3600;
rule.allowedOrigin = @"*";
cors.rules = @[rule];
putCORS.corsConfiguration = cors;
putCORS.bucket = @"examplebucket-1250000000";
[putCORS setFinishBlock:^(id outputObject, NSError *error) {
//可以从 outputObject 中获取服务器返回的header信息
    if (!error) {
      //success
  }
}];
[[QCloudCOSXMLService defaultCOSXML] PutBucketCORS:putCORS];

返回错误码说明

当 SDK 请求失败的时候,返回的 error 将不为空,并且包括了错误码、错误描述和其它一些调试必备的信息,以帮助开发者快速解决问题。

返回错误码(封装在返回的 error 里)主要包括两类:设备本身因为网络原因等返回的错误码,以及 COS 返回的错误码。

  • 对于设备本身因为网络原因产生的错误码,都是负数并且是四位数,例如-1001,这类错误码是苹果定义的,可以参考 Foundation 框架中的 NSURLError.h 头文件内的定义,或者是 苹果官方文档说明
  • 对于 COS 返回的错误码,是基于 HTTP 的状态码而来的,也就是404,503这类。对于这类错误码,可以参考 错误码 文档寻求解决方案。
  • 对于 SDK 自定义的错误码,均为5位数且都是正数,如10000、20000等。对于这类错误码,可以参考 SDK 错误码 文档寻求解决方案。

获取跨域配置

方法原型

进行获取跨域配置操作之前,需要导入头文件 QCloudCOSXML/QCloudCOSXML.h。在此之前您需要完成 初始化操作。先生成一个 QCloudGetBucketCORSRequest,填入需要获取 实例,然后填入一些需要的额外限制条件,通过并获得内容。具体步骤如下:

  1. 实例化 QCloudGetBucketCORSRequest,填入需要获取 CORS 的存储桶。
  2. 调用 QCloudCOSXMLService 对象中的 GetBucketCORS 方法发出请求。
  3. 从回调的 finishBlock 中获取结果。结果封装在了 QCloudCORSConfiguration 对象中,该对象的 rules 属性是一个数组,数组里存放着一组 QCloudCORSRule,具体的 CORS 设置就封装在 QCloudCORSRule 对象里。

QCloudPutBucketCORSRequest 参数说明

参数名称 描述 类型 必填
bucket 存储桶名称,可在 COS V5 控制台 上面看到,命名格式:BucketName-APPID。例如 examplebucket-1250000000 NSString *

QCloudCORSConfiguration 参数说明

参数名称 描述 类型
rules 规则集合 NSArray<QCloudCORSRule*>

QCloudCORSRule 参数说明

参数名称 描述 类型
identifier 配置规则的 ID NSString *
allowedMethod 允许的 HTTP 操作,枚举值:GET、PUT、HEAD、POST、DELETE NSArray <NSString*> *
allowedOrigin 允许的访问来源,支持通配符 *,格式为:协议://域名[:端口],例如:http://www.qq.com NSString *
allowedHeader 在发送 OPTIONS 请求时告知服务端,接下来的请求可以使用哪些自定义的 HTTP 请求头部,支持通配符 * NSArray <NSString * > *
maxAgeSeconds 设置 OPTIONS 请求得到结果的有效期 int
exposeHeader 设置浏览器可以接收到的来自服务器端的自定义头部信息 NSString *

示例

QCloudGetBucketCORSRequest* corsReqeust = [QCloudGetBucketCORSRequest new];
corsReqeust.bucket = @"examplebucket-1250000000";

[corsReqeust setFinishBlock:^(QCloudCORSConfiguration * _Nonnull result, NSError * _Nonnull error) {
//CORS设置封装在result中。
}];

[[QCloudCOSXMLService defaultCOSXML] GetBucketCORS:corsReqeust];

返回错误码说明

当 SDK 请求失败的时候,返回的 error 将不为空,并且包括了错误码、错误描述和其它一些调试必备的信息,以帮助开发者快速解决问题。

返回错误码(封装在返回的 error 里)主要包括两类:设备本身因为网络原因等返回的错误码,以及 COS 返回的错误码。

  • 对于设备本身因为网络原因产生的错误码,都是负数并且是四位数,例如-1001,这类错误码是苹果定义的,可以参考 Foundation 框架中的 NSURLError.h 头文件内的定义,或者是 苹果官方文档说明
  • 对于 COS 返回的错误码,是基于 HTTP 的状态码而来的,也就是404,503这类。对于这类错误码,可以参考 错误码 文档寻求解决方案。
  • 对于 SDK 自定义的错误码,均为5位数且都是正数,如10000、20000等。对于这类错误码,可以参考 SDK 错误码 文档寻求解决方案。

删除跨域配置

方法原型

进行存储桶操作之前,需要导入头文件 QCloudCOSXML/QCloudCOSXML.h。在此之前您需要完成 初始化操作。先生成一个 QCloudDeleteBucketCORSRequest 实例,然后填入一些需要的额外限制条件,通过并获得内容。具体步骤如下:

  1. 实例化 QCloudDeleteBucketCORSRequest,填入需要的参数。
  2. 调用 QCloudCOSXMLService 对象中的方法发出请求。
  3. 从回调的 finishBlock 中的获取具体内容。

QCloudDeleteBucketCORSRequest 参数说明

参数名称 描述 类型 必填
bucket 存储桶名称,可在 COS V5 控制台 上面看到,命名格式:BucketName-APPID。例如 examplebucket-1250000000 NSString *

示例

QCloudDeleteBucketCORSRequest* deleteCORS = [QCloudDeleteBucketCORSRequest new];
deleteCORS.bucket = @"examplebucket-1250000000";
[deleteCORS setFinishBlock:^(id outputObject, NSError *error) {
   //可以从 outputObject 中获取服务器返回的header信息
   //success if error == nil
}];
[[QCloudCOSXMLService defaultCOSXML] DeleteBucketCORS:deleteCORS];

返回错误码说明

当 SDK 请求失败的时候,返回的 error 将不为空,并且包括了错误码、错误描述和其它一些调试必备的信息,以帮助开发者快速解决问题。

返回错误码(封装在返回的 error 里)主要包括两类:设备本身因为网络原因等返回的错误码,以及 COS 返回的错误码。

  • 对于设备本身因为网络原因产生的错误码,都是负数并且是四位数,例如-1001,这类错误码是苹果定义的,可以参考 Foundation 框架中的 NSURLError.h 头文件内的定义,或者是 苹果官方文档说明
  • 对于 COS 返回的错误码,是基于 HTTP 的状态码而来的,也就是404,503这类。对于这类错误码,可以参考 错误码 文档寻求解决方案。
  • 对于 SDK 自定义的错误码,均为5位数且都是正数,如10000、20000等。对于这类错误码,可以参考 SDK 错误码 文档寻求解决方案。

生命周期

设置生命周期

功能说明

COS 支持用户以生命周期配置的方式来管理 Bucket 中 Object 的生命周期。生命周期配置包含一个或多个将应用于一组对象规则的规则集 (其中每个规则为 COS 定义一个操作)。
这些操作分为以下两种:

  • 转换操作:定义对象转换为另一个存储类的时间。例如,您可以选择在对象创建30天后将其转换为 STANDARD_IA(IA,适用于不常访问)存储类别。
  • 过期操作:指定 Object 的过期时间。COS 将会自动为用户删除过期的 Object。
    Put Bucket Lifecycle 用于为 Bucket 创建一个新的生命周期配置。如果该 Bucket 已配置生命周期,使用该接口创建新的配置的同时则会覆盖原有的配置。

参数说明

参数名称 描述 类型 必填
bucket 存储桶名称,可在 COS V5 控制台 上面看到,命名格式:BucketName-APPID。例如 examplebucket-1250000000 NSString*
lifeCycle 生命周期配置 QCloudLifecycleConfiguration*

QCloudLifecycleConfiguration 参数说明

参数名称 描述 类型 必填
rules 规则描述集合的数组 NSArray<QCloudLifecycleRule*> *

QCloudLifecycleRule 参数说明

参数名称 描述 类型 必填
identifier 用于唯一地标识规则,长度不能超过255 个字符 NSString*
filter Filter 用于描述规则影响的 Object 集合 QCloudLifecycleRuleFilter*
status 指明规则是否启用,枚举值:Enabled,Disabled QCloudLifecycleStatue
abortIncompleteMultipartUpload 设置允许分片上传保持运行的最长时间 QCloudLifecycleAbortIncompleteMultipartUpload
transition 规则转换属性,对象何时转换被转换为 Standard_IA 等 QCloudLifecycleTransition*
expiration 规则过期属性 QCloudLifecycleExpiration*
noncurrentVersionExpiration 指明非当前版本对象何时过期 QCloudLifecycleExpiration*
noncurrentVersionTransition 指明非当前版本对象何时转换被转换为 STANDARD_IA 等 QCloudNoncurrentVersionExpiration*

QCloudLifecycleTransition 参数说明

参数名称 描述 类型 必填
days 指明规则对应的动作在对象最后的修改日期过后多少天操作,在 Transition 里,该字段有效值是非负整数 NSString*
transitionDate 指明规则对应的动作在何时操作 NSString *
storageClass 对象的存储级别,枚举值:STANDARD(QCloudCOSStorageStandard),STANDARD_IA(QCloudCOSStorageStandardIA),ARCHIVE(QCloudCOSStorageARCHIVE)。默认值:STANDARD(QCloudCOSStorageStandard) QCloudCOSStorageClass

示例

QCloudPutBucketLifecycleRequest* request = [QCloudPutBucketLifecycleRequest new];
request.bucket = @"examplebucket-1250000000";
__block QCloudLifecycleConfiguration* configuration = [[QCloudLifecycleConfiguration alloc] init];
QCloudLifecycleRule* rule = [[QCloudLifecycleRule alloc] init];
rule.identifier = @"identifier";
rule.status = QCloudLifecycleStatueEnabled;
QCloudLifecycleRuleFilter* filter = [[QCloudLifecycleRuleFilter alloc] init];
filter.prefix = @"0";
rule.filter = filter;

QCloudLifecycleTransition* transition = [[QCloudLifecycleTransition alloc] init];
transition.days = 100;
transition.storageClass = QCloudCOSStorageStandarIA;
rule.transition = transition;
request.lifeCycle = configuration;
request.lifeCycle.rules = @[rule];
[request setFinishBlock:^(id outputObject, NSError* error) {
   //可以从 outputObject 中获取服务器返回的header信息
   //设置完成回调
}];
[[QCloudCOSXMLService defaultCOSXML] PutBucketLifecycle:request];

返回错误码说明

当 SDK 请求失败的时候,返回的 error 将不为空,并且包括了错误码、错误描述和其它一些调试必备的信息,以帮助开发者快速解决问题。

返回错误码(封装在返回的 error 里)主要包括两类:设备本身因为网络原因等返回的错误码,以及 COS 返回的错误码。

  • 对于设备本身因为网络原因产生的错误码,都是负数并且是四位数,例如-1001,这类错误码是苹果定义的,可以参考 Foundation 框架中的 NSURLError.h 头文件内的定义,或者是 苹果官方文档说明
  • 对于 COS 返回的错误码,是基于 HTTP 的状态码而来的,也就是404,503这类。对于这类错误码,可以参考 错误码 文档寻求解决方案。
  • 对于 SDK 自定义的错误码,均为5位数且都是正数,如10000、20000等。对于这类错误码,可以参考 SDK 错误码 文档寻求解决方案。

查询生命周期

功能说明

获取指定存储桶的的生命周期(Lifecycle)。

返回结果 QCloudLifecycleConfiguration 参数说明

与 Put Bucket Lifecycle 接口中的 QCloudLifecycleConfiguration 一致。

示例

QCloudGetBucketLifecycleRequest* request = [QCloudGetBucketLifecycleRequest new];
request.bucket = @"examplebucket-1250000000";
[request setFinishBlock:^(QCloudLifecycleConfiguration* result,NSError* error) {
    //设置完成回调
}];
[[QCloudCOSXMLService defaultCOSXML] GetBucketLifecycle:request];

返回错误码说明

当 SDK 请求失败的时候,返回的 error 将不为空,并且包括了错误码、错误描述和其它一些调试必备的信息,以帮助开发者快速解决问题。

返回错误码(封装在返回的 error 里)主要包括两类:设备本身因为网络原因等返回的错误码,以及 COS 返回的错误码。

  • 对于设备本身因为网络原因产生的错误码,都是负数并且是四位数,例如-1001,这类错误码是苹果定义的,可以参考 Foundation 框架中的 NSURLError.h 头文件内的定义,或者是 苹果官方文档说明
  • 对于 COS 返回的错误码,是基于 HTTP 的状态码而来的,也就是404,503这类。对于这类错误码,可以参考 错误码 文档寻求解决方案。
  • 对于 SDK 自定义的错误码,均为5位数且都是正数,如10000、20000等。对于这类错误码,可以参考 SDK 错误码 文档寻求解决方案。

删除生命周期

功能说明

删除指定存储桶的的生命周期(Lifecycle)。

方法原型

COS iOS SDK 中删除 Bucket 的生命周期配置的方法具体步骤如下:

1.实例化 QCloudDeleteBucketLifeCycleRequest,填入需要的参数。
2.调用 QCloudCOSXMLService 对象中的 DeleteBucketLifeCycle 方法发出请求。
3.从回调的 finishBlock 中的 QCloudLifecycleConfiguration 获取具体内容。

示例

  QCloudDeleteBucketLifeCycleRequest* request = [[QCloudDeleteBucketLifeCycleRequest alloc ] init];
  request.bucket = @"examplebucket-1250000000";
  [request setFinishBlock:^(QCloudLifecycleConfiguration* deleteResult, NSError* deleteError) {

  }];
  [[QCloudCOSXMLService defaultCOSXML] DeleteBucketLifeCycle:request];

返回错误码说明

当 SDK 请求失败的时候,返回的 error 将不为空,并且包括了错误码、错误描述和其它一些调试必备的信息,以帮助开发者快速解决问题。

返回错误码(封装在返回的 error 里)主要包括两类:设备本身因为网络原因等返回的错误码,以及 COS 返回的错误码。

  • 对于设备本身因为网络原因产生的错误码,都是负数并且是四位数,例如-1001,这类错误码是苹果定义的,可以参考 Foundation 框架中的 NSURLError.h 头文件内的定义,或者是 苹果官方文档说明
  • 对于 COS 返回的错误码,是基于 HTTP 的状态码而来的,也就是404,503这类。对于这类错误码,可以参考 错误码 文档寻求解决方案。
  • 对于 SDK 自定义的错误码,均为5位数且都是正数,如10000、20000等。对于这类错误码,可以参考 SDK 错误码 文档寻求解决方案。