バケットは、オブジェクトをOSSに格納するコンテナです。 すべてのオブジェクトは、バケットに保存されます。
バケットを作成する
次のコードは、バケットの作成方法の例を示しています。
OSSCreateBucketRequest * create = [OSSCreateBucketRequest new];
create.bucketName = @ "<bucketName>";
create.xOssACL = @ "public-read";
create.location = @ "oss-cn-hangzhou";
OSSTask * createTask = [client createBucket:create];
[createTask continueWithBlock:^ id(OSSTask * task) {
if (! task.error) {
NSLog(@ "create bucket success!") ;
} else {
NSLog(@ "create bucket failed, error: % @", task.error);
}
nilを返します。}];
説明
- リージョン内に最大100個のバケットを作成できます。
- 各バケットの名前は、OSS内でグローバルに一意である必要があります。 バケットを作成するには、一意のバケット名を選択しなければなりません。
- バケットを作成するときに、バケットACLを設定できます。 ACLが設定されていない場合、バケットACLはプライベートです。
- バケットが作成されると、バケットが属するリージョンが返されます。
バケットの一覧表示
次のコードは、リクエスタが所有するすべてのバケットを一覧表示する方法の例を示しています。
OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
OSSTask * getServiceTask = [クライアントgetService:getService];
[getServiceTask continueWithBlock:^ id(OSSTask * task) {
if (! task.error) {
OSSGetServiceResult * result = task.result;
NSLog(@ "buckets: % @", result.buckets);
NSLog(@ "owner: %@, % @", result.ownerId, result.ownerDispName);
[result.buckets enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSDictionary * bucketInfo = obj;
NSLog(@ "BucketName: % @", [bucketInfo objectForKey:@ "Name"]);
NSLog(@ "CreationDate: % @", [bucketInfo objectForKey:@ "CreationDate"]);
NSLog(@ "Location: % @", [bucketInfo objectForKey:@ "Location"]);
}];
}
nilを返します。}];
説明 匿名ユーザーには、バケットを一覧表示する権限がありません。
バケット内のオブジェクトの一覧表示
次のコードは、バケット内のオブジェクトを一覧表示する方法の例を示しています。
OSSGetBucketRequest * getBucket = [OSSGetBucketRequest new];
getBucket.bucketName = @ "<bucketName>";
// getBucket.marker = @ "";
// getBucket.prefix = @ "";
// getBucket.de limiter = @ "";
OSSTask * getBucketTask = [クライアントgetBucket:getBucket];
[getBucketTask continueWithBlock:^ id(OSSTask * task) {
if (! task.error) {
OSSGetBucketResult * result = task.result;
NSLog(@ "get bucket success!") ;
for (NSDictionary * objectInfo in result.contents) {
NSLog(@ "list object: % @", objectInfo);
}
} else {
NSLog(@ "get bucket failed, error: % @", task.error);
}
nilを返します。}];
説明
- バケット内のオブジェクトを一覧表示するには、バケットに対するアクセス権限が必要です。
- プレフィックス、marker、delimiter、およびmax-keysパラメーターを設定して、目的の結果のみを一覧表示できます。
バケットの削除
次のコードは、バケットを削除する方法の例を示しています。
OSSDeleteBucketRequest * delete = [OSSDeleteBucketRequest new];
delete.bucketName = @ "<bucketName>";
OSSTask * deleteTask = [クライアントdeleteBucket: 削除];
[deleteTask continueWithBlock:^ id(OSSTask * task) {
if (! task.error) {
NSLog(@ "バケットの成功を削除!") ;
} else {
NSLog(@ "バケットの削除に失敗しました、エラー: % @" 、task.error);
}
nilを返します。}];
重要 バケットを削除する前に、バケット内の不完全なマルチパートアップロードによって生成されたすべてのオブジェクトまたはオブジェクトパーツを削除します。