简介
本文介绍对象存储 COS 通过 iOS SDK 实现查询存储桶列表、创建存储桶、检索存储桶、删除存储桶的示例代码和描述。
注意事项
在您使用存储桶相关操作之前,需要先具有相关权限,具体而言:
若想查询存储桶列表,在您进行 授权策略 时,action 需要设置为
cos:GetService
,更多授权请参见 支持 CAM 的业务接口。若想创建存储桶,在您进行 授权策略 时,action 需要设置为
cos:PutBucket
,更多授权请参见 支持 CAM 的业务接口。若想检索存储桶,在您进行 授权策略 时,action 需要设置为
cos:HeadBucket
,更多授权请参见 支持 CAM 的业务接口。若想删除存储桶,在您进行 授权策略 时,action 需要设置为
cos:DeleteBucket
,更多授权请参见 支持 CAM 的业务接口。相关示例
功能名称 | 描述 | 示例代码 |
查询存储桶列表 | 查询指定账号下所有的存储桶列表 | |
创建存储桶 | 在指定账号下创建一个存储桶 | |
检索存储桶及其权限 | 检索存储桶是否存在且是否有权限访问 | |
删除存储桶 | 删除指定账号下的空存储桶 |
SDK API 参考
使用案例
查询存储桶列表
功能说明
用于查询指定账号下所有存储桶列表。
示例代码
Objective-C
// 获取所属账户的所有存储空间列表的方法QCloudGetServiceRequest* request = [[QCloudGetServiceRequest alloc] init];[request setFinishBlock:^(QCloudListAllMyBucketsResult* result,NSError* error) {// 从 result 中获取返回信息 存储桶列表NSArray<QCloudBucket*> *buckets = result.buckets;// bucket owner的信息QCloudOwner *owner = result.owner;}];[[QCloudCOSXMLService defaultCOSXML] GetService:request];
Swift
// 获取所属账户的所有存储空间列表的方法.let getServiceReq = QCloudGetServiceRequest.init();getServiceReq.setFinish{(result,error) inif let result = result {let buckets = result.bucketslet owner = result.owner} else {print(error!);}}QCloudCOSXMLService.defaultCOSXML().getService(getServiceReq);
创建存储桶
功能说明
创建一个存储桶(PUT Bucket)。
示例代码
Objective-C
// 创建存储桶QCloudPutBucketRequest* request = [QCloudPutBucketRequest new];// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucketrequest.bucket = @"examplebucket-1250000000";[request setFinishBlock:^(id outputObject, NSError* error) {// 可以从 outputObject 中获取服务器返回的 header 信息NSDictionary* info = (NSDictionary *) outputObject;}];[[QCloudCOSXMLService defaultCOSXML] PutBucket:request];
Swift
// 创建存储桶let putBucketReq = QCloudPutBucketRequest.init();// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucketputBucketReq.bucket = "examplebucket-1250000000";putBucketReq.finishBlock = {(result,error) in// 可以从 result 中获取服务器返回的 header 信息if error != nil {print(error!);} else {print(result!);}}QCloudCOSXMLService.defaultCOSXML().putBucket(putBucketReq);
检索存储桶及其权限
功能说明
HEAD Bucket 请求可以确认该存储桶是否存在,是否有权限访问。有以下几种情况:
存储桶存在且有读取权限,返回 HTTP 状态码为200。
无存储桶读取权限,返回 HTTP 状态码为403。
存储桶不存在,返回 HTTP 状态码为404。
示例代码
Objective-C
QCloudHeadBucketRequest* request = [QCloudHeadBucketRequest new];// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucketrequest.bucket = @"examplebucket-1250000000";[request setFinishBlock:^(id outputObject, NSError* error) {// 可以从 outputObject 中获取服务器返回的 header 信息NSDictionary * result = (NSDictionary *)outputObject;}];[[QCloudCOSXMLService defaultCOSXML] HeadBucket:request];
Swift
let headBucketReq = QCloudHeadBucketRequest.init();// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucketheadBucketReq.bucket = "examplebucket-1250000000";headBucketReq.finishBlock = {(result,error) inif let result = result {// result 包含响应的 header 信息} else {print(error!);}}QCloudCOSXMLService.defaultCOSXML().headBucket(headBucketReq);
判断存储桶是否存在
功能说明
您可以通过 SDK 提供的快捷接口来判断 Bucket 是否存在。
示例代码
Objective-C
// 存储桶名称,格式为 BucketName-APPID[[QCloudCOSXMLService defaultCOSXML] doesBucketExist: @"examplebucket-1250000000"];
说明:
Swift
// 存储桶名称,格式为 BucketName-APPIDQCloudCOSXMLService.defaultCOSXML().doesBucketExist("examplebucket-1250000000");
删除存储桶
功能说明
删除指定的存储桶(DELETE Bucket)。
注意:
删除存储桶前,请确保存储桶内的数据和未完成上传的分块数据已全部清空,否则会无法删除存储桶。
示例代码
Objective-C
QCloudDeleteBucketRequest* request = [[QCloudDeleteBucketRequest alloc ] init];// 存储桶名称,命名格式:BucketName-APPIDrequest.bucket = @"examplebucket-1250000000";[request setFinishBlock:^(id outputObject,NSError*error) {// 可以从 outputObject 中获取服务器返回的 header 信息NSDictionary* info = (NSDictionary *) outputObject;}];[[QCloudCOSXMLService defaultCOSXML] DeleteBucket:request];
说明:
Swift
let deleteBucketReq = QCloudDeleteBucketRequest.init();// 存储桶名称,命名格式:BucketName-APPIDdeleteBucketReq.bucket = "examplebucket-1250000000";deleteBucketReq.finishBlock = {(result,error) inif let result = result {// result 包含响应的 header 信息} else {print(error!);}}QCloudCOSXMLService.defaultCOSXML().deleteBucket(deleteBucketReq);
说明:
API 操作
关于查询存储桶列表的 API 接口说明,请参见 GET Service (List Buckets) 文档。
关于创建存储桶的 API 接口说明,请参见 PUT Bucket 文档。
关于检索存储桶的 API 接口说明,请参见 HEAD Bucket 文档。
关于删除存储桶的 API 接口说明,请参见 DELETE Bucket 文档。