存储桶管理

最后更新时间:2020-04-29 11:44:07

    简介

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

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

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

    跨域访问

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

    生命周期

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

    版本控制

    API 操作名 操作描述
    PUT Bucket versioning 设置版本控制 设置存储桶的版本控制功能
    GET Bucket versioning 查询版本控制 查询存储桶的版本控制信息

    跨地域复制

    API 操作名 操作描述
    PUT Bucket replication 设置跨地域复制 设置存储桶的跨地域复制规则
    GET Bucket replication 查询跨地域复制 查询存储桶的跨地域复制规则
    DELETE Bucket replication 删除跨地域复制 删除存储桶的跨地域复制规则

    跨域访问

    设置跨域配置

    方法原型

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

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

    QCloudPutBucketCORSRequest 请求参数说明

    参数名称 描述 类型 必填
    bucket 存储桶名称,可在 COS 控制台 查看,命名格式: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 *

    示例

    Objective-C 代码示例:

    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 = @"http://cloud.tencent.com";
    cors.rules = @[rule];
    putCORS.corsConfiguration = cors;
    putCORS.bucket = @"examplebucket-1250000000";
    [putCORS setFinishBlock:^(id outputObject, NSError *error) {
        //可以从 outputObject 中获取服务器返回的 header 信息
    }];
    
    [[QCloudCOSXMLService defaultCOSXML] PutBucketCORS:putCORS];

    Swift 代码示例:

    let putBucketCorsReq = QCloudPutBucketCORSRequest.init();
    
    let corsConfig = QCloudCORSConfiguration.init();
    
    let rule = QCloudCORSRule.init();
    rule.identifier = "swift-sdk";
    rule.allowedHeader = ["origin","host","accept","content-type","authorization"];
    rule.exposeHeader = "Etag";
    rule.allowedMethod = ["GET","PUT","POST", "DELETE", "HEAD"];
    rule.maxAgeSeconds = 3600;
    rule.allowedOrigin = "*";
    
    corsConfig.rules = [rule];
    
    putBucketCorsReq.corsConfiguration = corsConfig;
    putBucketCorsReq.bucket = "examplebucket-1250000000";
    putBucketCorsReq.finishBlock = {(result,error) in
        if error != nil{
            print(error!);
        }else{
            print(result!);
        }}
    
    QCloudCOSXMLService.defaultCOSXML().putBucketCORS(putBucketCorsReq);

    返回错误码说明

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

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

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

    查询跨域配置

    方法原型

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

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

    QCloudGetBucketCORSRequest 请求参数说明

    参数名称 描述 类型
    bucket 存储桶名称,可在 COS 控制台 查看,命名格式: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 *

    示例

    Objective-C 代码示例:

    QCloudGetBucketCORSRequest* corsReqeust = [QCloudGetBucketCORSRequest new];
    corsReqeust.bucket = @"examplebucket-1250000000";
    
    [corsReqeust setFinishBlock:^(QCloudCORSConfiguration * _Nonnull result, NSError * _Nonnull error) {
        //CORS 设置封装在 result 中
    }];
    
    [[QCloudCOSXMLService defaultCOSXML] GetBucketCORS:corsReqeust];

    Swift 代码示例:

    let  getBucketCorsRes = QCloudGetBucketCORSRequest.init();
    getBucketCorsRes.bucket = "examplebucket-1250000000";
    getBucketCorsRes.setFinish { (corsConfig, error) in
        if error != nil{
            print(error!);
        }else{
            print(corsConfig!);
        }}
    QCloudCOSXMLService.defaultCOSXML().getBucketCORS(getBucketCorsRes);

    返回错误码说明

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

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

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

    删除跨域配置

    方法原型

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

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

    QCloudDeleteBucketCORSRequest 请求参数说明

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

    示例

    Objective-C 代码示例:

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

    Swift 代码示例:

    let deleteBucketCorsRequest = QCloudDeleteBucketCORSRequest.init();
    deleteBucketCorsRequest.bucket = "examplebucket-1250000000";
    deleteBucketCorsRequest.finishBlock = {(result,error) in
        if error != nil{
            print(error!);
        }else{
            print(result!);
        }}
    QCloudCOSXMLService.defaultCOSXML().deleteBucketCORS(deleteBucketCorsRequest);

    返回错误码说明

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

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

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

    生命周期

    设置生命周期

    功能说明

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

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

    QCloudPutBucketLifecycleRequest 请求参数说明

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

    QCloudLifecycleConfiguration 参数说明

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

    QCloudLifecycleRule 参数说明

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

    QCloudLifecycleTransition 参数说明

    参数名称 描述 类型 必填
    days 指明规则对应的动作在对象最后的修改日期过后多少天操作,如果是 Transition,该字段有效值是非负整数;如果是 Expiration,该字段有效值为正整数,最大支持3650天 int
    transitionDate 指明规则对应的动作在何时操作 NSString *
    storageClass 指定 Object 转储到的目标存储类型,枚举值: STANDARD_IA,ARCHIVE QCloudCOSStorageClass

    示例

    Objective-C 代码示例:

    QCloudPutBucketLifecycleRequest* request = [QCloudPutBucketLifecycleRequest new];
    request.bucket = @"examplebucket-1250000000";
    __block QCloudLifecycleConfiguration* lifecycleConfiguration = [[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 = QCloudCOSStorageStandardIA;
    rule.transition = transition;
    request.lifeCycle = lifecycleConfiguration;
    request.lifeCycle.rules = @[rule];
    [request setFinishBlock:^(id outputObject, NSError* error) {
        //可以从 outputObject 中获取服务器返回的 header 信息
    }];
    
    [[QCloudCOSXMLService defaultCOSXML] PutBucketLifecycle:request];

    Swift 代码示例:

    let putBucketLifecycleReq = QCloudPutBucketLifecycleRequest.init();
    putBucketLifecycleReq.bucket = "examplebucket-1250000000";
    
    let config = QCloudLifecycleConfiguration.init();
    
    let rule = QCloudLifecycleRule.init();
    rule.identifier = "swift";
    rule.status = .enabled;
    
    let fileter = QCloudLifecycleRuleFilter.init();
    fileter.prefix = "0";
    
    rule.filter = fileter;
    
    let transition = QCloudLifecycleTransition.init();
    transition.days = 100;
    transition.storageClass = .standardIA;
    
    rule.transition = transition;
    
    putBucketLifecycleReq.lifeCycle = config;
    putBucketLifecycleReq.lifeCycle.rules = [rule];
    
    putBucketLifecycleReq.finishBlock = {(result,error) in
        if error != nil{
            print(error!);
        }else{
            print(result!);
        }}
    QCloudCOSXMLService.defaultCOSXML().putBucketLifecycle(putBucketLifecycleReq);

    返回错误码说明

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

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

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

    查询生命周期

    功能说明

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

    QCloudGetBucketLifecycleRequest 请求参数说明

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

    返回结果说明

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

    示例

    Objective-C 代码示例:

    QCloudGetBucketLifecycleRequest* request = [QCloudGetBucketLifecycleRequest new];
    request.bucket = @"examplebucket-1250000000";
    [request setFinishBlock:^(QCloudLifecycleConfiguration* result,NSError* error) {
        // 可以从 result 中获取返回信息
    }];
    [[QCloudCOSXMLService defaultCOSXML] GetBucketLifecycle:request];

    Swift 代码示例:

    let getBucketLifeCycle = QCloudGetBucketLifecycleRequest.init();
    getBucketLifeCycle.bucket = "examplebucket-1250000000";
    getBucketLifeCycle.setFinish { (config, error) in
        if error != nil{
            print(error!);
        }else{
            print(config!);
        }};
    QCloudCOSXMLService.defaultCOSXML().getBucketLifecycle(getBucketLifeCycle);

    返回错误码说明

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

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

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

    删除生命周期

    功能说明

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

    QCloudDeleteBucketLifeCycleRequest 请求参数说明

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

    方法原型

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

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

    示例

    Objective-C 代码示例:

    QCloudDeleteBucketLifeCycleRequest* request = [[QCloudDeleteBucketLifeCycleRequest alloc ] init];
    request.bucket = @"examplebucket-1250000000";
    [request setFinishBlock:^(QCloudLifecycleConfiguration* deleteResult, NSError* error) {
        //error 返回删除结果
    }];
    [[QCloudCOSXMLService defaultCOSXML] DeleteBucketLifeCycle:request];

    Swift 代码示例:

    let deleteBucketLifeCycle = QCloudDeleteBucketLifeCycleRequest.init();
    deleteBucketLifeCycle.bucket = "examplebucket-1250000000";
    deleteBucketLifeCycle.finishBlock = { (result, error) in
        if error != nil{
            print(error!);
        }else{
            print(result!);
        }};
    QCloudCOSXMLService.defaultCOSXML().deleteBucketLifeCycle(deleteBucketLifeCycle);

    返回错误码说明

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

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

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

    版本控制

    设置版本控制

    功能说明

    设置指定存储桶的版本控制功能。

    方法原型

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

    请求示例

    开启版本控制

    Objective-C 代码示例:

    //开启版本控制
    QCloudPutBucketVersioningRequest* request = [[QCloudPutBucketVersioningRequest alloc] init];
    request.bucket =@"examplebucket-1250000000";
    QCloudBucketVersioningConfiguration* versioningConfiguration =
        [[QCloudBucketVersioningConfiguration alloc] init];
    request.configuration = versioningConfiguration;
    versioningConfiguration.status = QCloudCOSBucketVersioningStatusEnabled;
    
    [request setFinishBlock:^(id outputObject, NSError* error) {
        //可以从 outputObject 中获取服务器返回的 header 信息
    }];
    [[QCloudCOSXMLService defaultCOSXML] PutBucketVersioning:request];

    Swift 代码示例:

    let putBucketVersioning = QCloudPutBucketVersioningRequest.init();
    putBucketVersioning.bucket = "examplebucket-1250000000";
    
    let config = QCloudBucketVersioningConfiguration.init();
    config.status = .enabled;
    
    putBucketVersioning.configuration = config;
    
    putBucketVersioning.finishBlock = {(result,error) in
        if error != nil{
            print(error!);
        }else{
            print(result!);
        }}
    QCloudCOSXMLService.defaultCOSXML().putBucketVersioning(putBucketVersioning);

    参数说明

    参数名称 描述 类型
    bucket 存储桶的命名格式为 BucketName-APPID,详情请参阅 命名规范 NSString *
    configuration 版本控制策略 QCloudBucketVersioningConfiguration *

    QCloudBucketVersioningConfigurationcan 参数说明

    参数名称 描述 类型
    status 说明版本是否开启,枚举值:QCloudCOSBucketVersioningStatusSuspended\QCloudCOSBucketVersioningStatusEnabled QCloudCOSBucketVersioningStatus

    返回错误码说明

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

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

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

    查询版本控制

    功能说明

    查询指定存储桶的版本控制信息。

    方法原型

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

    请求示例

    Objective-C 代码示例:

    QCloudGetBucketVersioningRequest* request = [[QCloudGetBucketVersioningRequest alloc] init];
    request.bucket = @"examplebucket-1250000000";
    [request setFinishBlock:^(QCloudBucketVersioningConfiguration* result, NSError* error) {
        //可以从 result 中获取返回信息
    }];
    
    [[QCloudCOSXMLService defaultCOSXML] GetBucketVersioning:request];

    Swift 代码示例:

    let getBucketVersioning = QCloudGetBucketVersioningRequest.init();
    getBucketVersioning.bucket = "examplebucket-1250000000";
    getBucketVersioning.setFinish { (config, error) in
        if error != nil{
            print(error!);
        }else{
            print(config!);
        }}
    QCloudCOSXMLService.defaultCOSXML().getBucketVersioning(getBucketVersioning);

    参数说明

    参数名称 描述 类型
    bucket 存储桶的命名格式为 BucketName-APPID,详情请参阅 命名规范 NSString *

    返回结果说明

    返回结果存储在 QCloudBucketVersioningConfiguration 的实例中,参数说明同 QCloudPutBucketVersioningRequest。

    返回错误码说明

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

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

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

    跨地域复制

    设置跨地域复制

    功能说明

    设置指定存储桶的跨地域复制规则。

    方法原型

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

    请求示例

    Objective-C 代码示例:

    QCloudPutBucketReplicationRequest* request = [[QCloudPutBucketReplicationRequest alloc] init];
    request.bucket = @"examplebucket-1250000000";
    QCloudBucketReplicationConfiguation* replConfiguration = [[QCloudBucketReplicationConfiguation
        alloc] init];
    replConfiguration.role = @"qcs::cam::uin/100000000001:uin/100000000001";
    QCloudBucketReplicationRule* rule = [[QCloudBucketReplicationRule alloc] init];
    
    rule.identifier = @"identifier";
    rule.status = QCloudCOSXMLStatusEnabled;
    
    QCloudBucketReplicationDestination* destination = [[QCloudBucketReplicationDestination alloc] init];
    NSString* destinationBucket = @"destinationbucket-1250000000";
    NSString* region = @"ap-beijing";
    destination.bucket = [NSString stringWithFormat:@"qcs::cos:%@::%@",region,destinationBucket];
    rule.destination = destination;
    rule.prefix = @"a";
    replConfiguration.rule = @[rule];
    request.configuation = replConfiguration;
    
    [request setFinishBlock:^(id outputObject, NSError* error) {
        //可以从 outputObject 中获取服务器返回的 header 信息
    }];
    [[QCloudCOSXMLService defaultCOSXML] PutBucketRelication:request];

    Swift 代码示例:

    let putBucketReplication = QCloudPutBucketReplicationRequest.init();
    putBucketReplication.bucket = "examplebucket-1250000000";
    
    let config = QCloudBucketReplicationConfiguation.init();
    config.role = "qcs::cam::uin/100000000001:uin/100000000001";
    
    let rule = QCloudBucketReplicationRule.init();
    rule.identifier = "swift";
    rule.status = .enabled;
    
    let destination = QCloudBucketReplicationDestination.init();
    let destinationBucket = "destinationbucket-1250000000";
    let region = "ap-beijing";
    destination.bucket = "qcs::cos:\(region)::\(destinationBucket)";
    rule.destination = destination;
    rule.prefix = "a";
    
    config.rule = [rule];
    
    putBucketReplication.configuation = config;
    
    putBucketReplication.finishBlock = {(result,error) in
            if error != nil{
                print(error!);
            }else{
                print(result!);
            }}
    QCloudCOSXMLService.defaultCOSXML().putBucketRelication(putBucketReplication);

    参数说明

    参数名称 描述 类型
    bucket 存储桶的命名格式为 BucketName-APPID,详情请参阅 命名规范 NSString *
    configuation 跨地域复制规则 QCloudBucketReplicationConfiguation *

    QCloudBucketReplicationConfiguation 参数说明

    参数名称 描述 类型
    role 发起者身份标示,格式为:id="OwnerUin" NSString *
    rule 具体配置信息,最多支持1000个,所有策略只能指向一个目标存储桶 NSArray<QCloudBucketReplicationRule* > *

    QCloudBucketReplicationRule 参数说明

    参数名称 描述 类型
    status 标志 Rule 是否生效,可选值(QCloudCOSXMLStatusEnabled、QCloudCOSXMLStatusDisabled) QCloudCOSXMLStatus
    identifier 用来标注具体 Rule 的名称 NSString *
    prefix 前缀匹配策略,不可重叠,重叠返回错误。前缀匹配根目录为空 NSString *
    destination 目标存储桶信息 QCloudBucketReplicationDestination *

    QCloudBucketReplicationDestination 参数说明

    参数名称 描述 类型
    bucket 资源标识符,注意与存储桶不同
    格式为:qcs::cos:[region]:appid/[AppId]:[bucketname]
    NSString *
    storageClass 用来标注具体 Rule 的名称 QCloudCOSStorageStandard
    QCloudCOSStorageStandardIA
    QCloudCOSStorageARCHIVE

    返回错误码说明

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

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

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

    查询跨地域复制

    功能说明

    查询指定存储桶的跨地域复制规则。

    方法原型

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

    请求示例

    Objective-C 代码示例:

    QCloudGetBucketReplicationRequest* request = [[QCloudGetBucketReplicationRequest alloc] init];
    request.bucket = @"examplebucket-1250000000";
    
    [request setFinishBlock:^(QCloudBucketReplicationConfiguation* result, NSError* error) {
        //可以从 result 中获取返回信息
    }];
    [[QCloudCOSXMLService defaultCOSXML] GetBucketReplication:request];

    Swift 代码示例:

    let getBucketReplication = QCloudGetBucketReplicationRequest.init();
    getBucketReplication.bucket = "examplebucket-1250000000";
    getBucketReplication.setFinish { (config, error) in
        if error != nil{
            print(error!);
        }else{
            print(config!);
        }}
    QCloudCOSXMLService.defaultCOSXML().getBucketReplication(getBucketReplication);

    参数说明

    参数名称 描述 类型
    bucket 存储桶的命名格式为 BucketName-APPID,详情请参阅 命名规范 NSString *

    返回结果说明

    返回结果存储在 QCloudBucketReplicationConfiguation 的实例中,参数详情同 QCloudPutBucketReplicationRequest。

    返回错误码说明

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

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

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

    删除跨地域复制

    功能说明

    删除指定存储桶的跨地域复制规则。

    方法原型

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

    请求示例

    Objective-C 代码示例:

    QCloudDeleteBucketReplicationRequest* request = [[QCloudDeleteBucketReplicationRequest alloc] init];
    request.bucket = @"examplebucket-1250000000";
    
    [request setFinishBlock:^(id outputObject, NSError* error) {
        //可以从 outputObject 中获取服务器返回的 header 信息
    }];
    [[QCloudCOSXMLService defaultCOSXML] DeleteBucketReplication:request];

    Swift 代码示例:

    let deleteBucketReplication = QCloudDeleteBucketReplicationRequest.init();
    deleteBucketReplication.bucket = "examplebucket-1250000000";
    deleteBucketReplication.finishBlock = {(result,error) in
        if error != nil{
            print(error!);
        }else{
            print(result!);
        }}
    QCloudCOSXMLService.defaultCOSXML().deleteBucketReplication(deleteBucketReplication);

    参数说明

    参数名称 描述 类型
    bucket 存储桶的命名格式为 BucketName-APPID,详情请参阅 命名规范 NSString *

    返回错误码说明

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

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

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

    Was this page helpful?

    本页内容是否解决了您的问题?

    • 完全没帮助
    • 文档较差
    • 文档一般
    • 文档不错
    • 文档很好
    反馈
    帮助