简介
本文档提供关于存储桶基本操作的相关 API 概览以及 SDK 示例代码。
API | 操作名 | 操作描述 |
---|---|---|
GET Service(List Buckets) | 查询存储桶列表 | 查询指定账号下所有的存储桶列表 |
PUT Bucket | 创建存储桶 | 在指定账号下创建一个存储桶 |
HEAD Bucket | 检索存储桶及其权限 | 检索存储桶是否存在且是否有权限访问 |
DELETE Bucket | 删除存储桶 | 删除指定账号下的空存储桶 |
SDK API 参考
SDK 所有接口的具体参数与方法说明,请参考 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];
说明:更多完整示例,请前往 GitHub 查看。
Swift
// 获取所属账户的所有存储空间列表的方法.
let getServiceReq = QCloudGetServiceRequest.init();
getServiceReq.setFinish{(result,error) in
if let result = result {
let buckets = result.buckets
let owner = result.owner
} else {
print(error!);
}
}
QCloudCOSXMLService.defaultCOSXML().getService(getServiceReq);
说明:更多完整示例,请前往 GitHub 查看。
创建存储桶
功能说明
创建一个存储桶(PUT Bucket)。
示例代码
Objective-C
// 创建存储桶
QCloudPutBucketRequest* request = [QCloudPutBucketRequest new];
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
request.bucket = @"examplebucket-1250000000";
[request setFinishBlock:^(id outputObject, NSError* error) {
// 可以从 outputObject 中获取服务器返回的 header 信息
NSDictionary* info = (NSDictionary *) outputObject;
}];
[[QCloudCOSXMLService defaultCOSXML] PutBucket:request];
说明:更多完整示例,请前往 GitHub 查看。
Swift
// 创建存储桶
let putBucketReq = QCloudPutBucketRequest.init();
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
putBucketReq.bucket = "examplebucket-1250000000";
putBucketReq.finishBlock = {(result,error) in
// 可以从 result 中获取服务器返回的 header 信息
if error != nil {
print(error!);
} else {
print(result!);
}
}
QCloudCOSXMLService.defaultCOSXML().putBucket(putBucketReq);
说明:更多完整示例,请前往 GitHub 查看。
检索存储桶及其权限
功能说明
HEAD Bucket 请求可以确认该存储桶是否存在,是否有权限访问。有以下几种情况:
- 存储桶存在且有读取权限,返回 HTTP 状态码为200。
- 无存储桶读取权限,返回 HTTP 状态码为403。
- 存储桶不存在,返回 HTTP 状态码为404。
示例代码
Objective-C
QCloudHeadBucketRequest* request = [QCloudHeadBucketRequest new];
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
request.bucket = @"examplebucket-1250000000";
[request setFinishBlock:^(id outputObject, NSError* error) {
// 可以从 outputObject 中获取服务器返回的 header 信息
NSDictionary * result = (NSDictionary *)outputObject;
}];
[[QCloudCOSXMLService defaultCOSXML] HeadBucket:request];
说明:更多完整示例,请前往 GitHub 查看。
Swift
let headBucketReq = QCloudHeadBucketRequest.init();
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
headBucketReq.bucket = "examplebucket-1250000000";
headBucketReq.finishBlock = {(result,error) in
if let result = result {
// result 包含响应的 header 信息
} else {
print(error!);
}
}
QCloudCOSXMLService.defaultCOSXML().headBucket(headBucketReq);
说明:更多完整示例,请前往 GitHub 查看。
判断存储桶是否存在
功能说明
您可以通过 SDK 提供的快捷接口来判断 Bucket 是否存在
示例代码
Objective-C
// 存储桶名称,格式为 BucketName-APPID
[[QCloudCOSXMLService defaultCOSXML] doesBucketExist: @"examplebucket-1250000000"];
说明:更多完整示例,请前往 GitHub 查看。
Swift
// 存储桶名称,格式为 BucketName-APPID
QCloudCOSXMLService.defaultCOSXML().doesBucketExist("examplebucket-1250000000");
说明:更多完整示例,请前往 GitHub 查看。
删除存储桶
功能说明
删除指定的存储桶(DELETE Bucket)。
注意:删除存储桶前,请确保存储桶内的数据和未完成上传的分块数据已全部清空,否则会无法删除存储桶。
示例代码
Objective-C
QCloudDeleteBucketRequest* request = [[QCloudDeleteBucketRequest alloc ] init];
// 存储桶名称,命名格式:BucketName-APPID
request.bucket = @"examplebucket-1250000000";
[request setFinishBlock:^(id outputObject,NSError*error) {
// 可以从 outputObject 中获取服务器返回的 header 信息
NSDictionary* info = (NSDictionary *) outputObject;
}];
[[QCloudCOSXMLService defaultCOSXML] DeleteBucket:request];
说明:更多完整示例,请前往 GitHub 查看。
Swift
let deleteBucketReq = QCloudDeleteBucketRequest.init();
// 存储桶名称,命名格式:BucketName-APPID
deleteBucketReq.bucket = "examplebucket-1250000000";
deleteBucketReq.finishBlock = {(result,error) in
if let result = result {
// result 包含响应的 header 信息
} else {
print(error!);
}
}
QCloudCOSXMLService.defaultCOSXML().deleteBucket(deleteBucketReq);
说明:更多完整示例,请前往 GitHub 查看。