edit-icon download-icon

バケットの管理

最終更新日: Oct 27, 2017

バケットの作成

  1. OSSCreateBucketRequest * create = [OSSCreateBucketRequest new];
  2. create.bucketName = @"<bucketName>";
  3. create.xOssACL = @"public-read";
  4. create.location = @"oss-cn-hangzhou";
  5. OSSTask * createTask = [client createBucket:create];
  6. [createTask continueWithBlock:^id(OSSTask *task) {
  7. if (!task.error) {
  8. NSLog(@"create bucket success!");
  9. } else {
  10. NSLog(@"create bucket failed, error: %@", task.error);
  11. }
  12. return nil;
  13. }];

上記のコードは、作成されたバケット ACLとデータセンターを指定します。

  • 各ユーザーは最大30個のバケットを持つことができます。

  • 各バケットの名前は世界的にユニークです。新しく作成されたバケットの名前が​​別のユーザに属するインサービスバケットと同じ場合、作成は失敗します。

  • あなたが作成するとバケット 、あなたが設定することもできますバケット ACL。ACLが設定されていない場合、 バケットアクセス権はデフォルトでプライベートになります。

  • バケット作成された結果は、 バケットが配置されているデータセンターに返されます。

バケットのリスト

  1. OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
  2. OSSTask * getServiceTask = [client getService:getService];
  3. [getServiceTask continueWithBlock:^id(OSSTask *task) {
  4. if (!task.error) {
  5. OSSGetServiceResult * result = task.result;
  6. NSLog(@"buckets: %@", result.buckets);
  7. NSLog(@"owner: %@, %@", result.ownerId, result.ownerDispName);
  8. [result.buckets enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
  9. NSDictionary * bucketInfo = obj;
  10. NSLog(@"BucketName: %@", [bucketInfo objectForKey:@"Name"]);
  11. NSLog(@"CreationDate: %@", [bucketInfo objectForKey:@"CreationDate"]);
  12. NSLog(@"Location: %@", [bucketInfo objectForKey:@"Location"]);
  13. }];
  14. }
  15. return nil;
  16. }];

上記のコードはリクエスタのすべてのバケットを返します。

注意: 匿名ユーザーには、LIST操作を実行する権限がありません。

バケット内のオブジェクトのリスト

  1. OSSGetBucketRequest * getBucket = [OSSGetBucketRequest new];
  2. getBucket.bucketName = @"<bucketName>";
  3. // getBucket.marker = @"";
  4. // getBucket.prefix = @"";
  5. // getBucket.delimiter = @"";
  6. OSSTask * getBucketTask = [client getBucket:getBucket];
  7. [getBucketTask continueWithBlock:^id(OSSTask *task) {
  8. if (!task.error) {
  9. OSSGetBucketResult * result = task.result;
  10. NSLog(@"get bucket success!");
  11. for (NSDictionary * objectInfo in result.contents) {
  12. NSLog(@"list object: %@", objectInfo);
  13. }
  14. } else {
  15. NSLog(@"get bucket failed, error: %@", task.error);
  16. }
  17. return nil;
  18. }];

上記のコードは、 バケット内のすべてのオブジェクトをリストしています。

  • バケット内のすべてのオブジェクトを一覧表示するには、そのバケットにアクセスする権限が必要です。

  • パラメータプレフィックス、マーカー、区切り文字、およびリストの最大キーを設定して、期待される結果のみを返すことができます。

バケットの削除

  1. OSSDeleteBucketRequest * delete = [OSSDeleteBucketRequest new];
  2. delete.bucketName = @"<bucketName>";
  3. OSSTask * deleteTask = [client deleteBucket:delete];
  4. [deleteTask continueWithBlock:^id(OSSTask *task) {
  5. if (!task.error) {
  6. NSLog(@"delete bucket success!");
  7. } else {
  8. NSLog(@"delete bucket failed, error: %@", task.error);
  9. }
  10. return nil;
  11. }];

上記のコードは、バケットを削除します。

  • バケット所有者だけがバケットを削除する権限を持っています。

  • 誤って削除されるのを防ぐため、空でないバケットを削除することはできません。