すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:OSS SDK for iOSを使用したオブジェクトの削除

最終更新日:Sep 14, 2024

このトピックでは、一度に1つのオブジェクトと複数のオブジェクトを削除する方法について説明します。

警告

削除したオブジェクトを元に戻すことはできません。 オブジェクトを削除するときは注意してください。

使用上の注意

  • このトピックのサンプルコードを実行する前に、カスタムドメイン名やSecurity Token Service (STS) などの方法を使用してOSSClientインスタンスを作成する必要があります。 詳細については、「初期化」をご参照ください。

  • オブジェクトを削除するには、オブジェクトが格納されているバケットに対する書き込み権限が必要です。

単一のオブジェクトの削除

次のサンプルコードは、examplebucketという名前のバケットからexampleobject.txtという名前のオブジェクトを削除する方法の例を示しています。

OSSDeleteObjectRequest * delete = [OSSDeleteObjectRequest new];
// Specify the name of the bucket. Example: examplebucket.
delete.bucketName = @"examplebucket";
// Specify the full path of the object. Do not include the bucket name in the full path. Example: exampleobject.txt. 
delete.objectKey = @"exampleobject.txt";

OSSTask * deleteTask = [client deleteObject:delete];

[deleteTask continueWithBlock:^id(OSSTask *task) {
    if (!task.error) {
        // ...
    }
    return nil;
}];
// Implement synchronous blocking to wait for the task to complete. 
// [deleteTask waitUntilFinished];

一度に複数のオブジェクトを削除する

一度に最大1,000個のオブジェクトを削除できます。

結果は、次のいずれかのモードで返すことができます。

  • verbose: quietがNOに設定されている場合、削除されたすべてのオブジェクトのリストが返されます。

  • quiet: quietが指定されていないか、YESに設定されている場合、削除に失敗したオブジェクトのリストが返されます。

次のサンプルコードは、examplebucketという名前のバケットから複数の指定されたオブジェクトを削除し、その結果を静かなモードで返す方法の例を示しています。

OSSDeleteMultipleObjectsRequest *request = [OSSDeleteMultipleObjectsRequest new];
// Specify the name of the bucket. Example: examplebucket. 
request.bucketName = @"examplebucket";
// Specify the full paths of objects to be deleted. Do not include the bucket name in the full paths of objects. 
request.keys = @[@"exampleobject.txt", @"testfolder/sampleobject.txt"];
// Set quiet to YES to return only a list of objects that failed to be deleted. 
request.quiet = YES;

OSSTask * deleteMultipleObjectsTask = [client deleteMultipleObjects:request];
[deleteMultipleObjectsTask continueWithBlock:^id(OSSTask *task) {
    if (!task.error) {
        OSSDeleteMultipleObjectsResult *result = task.result;
        NSLog(@"delete objects: %@", result.deletedObjects);
    } else {
        NSLog(@"delete objects failed, error: %@", task.error);
    }
    return nil;
}];
// Implement synchronous blocking to wait for the task to complete. 
// [deleteTask waitUntilFinished];

関連ドキュメント

  • 単一のオブジェクトの削除

    単一のオブジェクトを削除するために呼び出すことができるAPI操作の詳細については、「DeleteObject」をご参照ください。

  • 一度に複数のオブジェクトを削除する

    複数のオブジェクトを削除するために呼び出すことができるAPI操作の詳細については、「DeleteMultipleObjects」をご参照ください。

  • OSSClientインスタンスを初期化する方法の詳細については、「初期化」をご参照ください。