このトピックでは、単一のオブジェクトおよび複数のオブジェクトを一括で削除する方法について説明します。
削除されたオブジェクトは回復できません。オブジェクトを削除する際は、十分にご注意ください。
注意事項
このトピックのサンプルコードを実行する前に、カスタムドメイン名や Security Token Service (STS) などを使用して OSSClient インスタンスを作成する必要があります。詳細については、「初期化」をご参照ください。
オブジェクトを削除するには、そのオブジェクトが格納されているバケットに対する書き込み権限が必要です。
単一オブジェクトの削除
次のサンプルコードは、examplebucket という名前のバケットから exampleobject.txt という名前のオブジェクトを削除する方法の例を示しています。
OSSDeleteObjectRequest * delete = [OSSDeleteObjectRequest new];
// バケット名を指定します。例:examplebucket。
delete.bucketName = @"examplebucket";
// オブジェクトの完全なパスを指定します。完全なパスにバケット名を含めないでください。例:exampleobject.txt。
delete.objectKey = @"exampleobject.txt";
OSSTask * deleteTask = [client deleteObject:delete];
[deleteTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
// ...
}
return nil;
}];
// 同期ブロッキングを実装して、タスクが完了するのを待ちます。
// [deleteTask waitUntilFinished];複数オブジェクトの一括削除
一度に最大 1,000 個のオブジェクトを削除できます。
結果は、次のいずれかのモードで返すことができます。
verbose: quiet が NO に設定されている場合、削除されたすべてのオブジェクトのリストが返されます。
quiet: quiet が指定されていないか、YES に設定されている場合、削除に失敗したオブジェクトのリストが返されます。
次のサンプルコードは、examplebucket という名前のバケットから指定された複数のオブジェクトを削除し、結果を quiet モードで返す方法の例を示しています。
OSSDeleteMultipleObjectsRequest *request = [OSSDeleteMultipleObjectsRequest new];
// バケット名を指定します。例:examplebucket。
request.bucketName = @"examplebucket";
// 削除するオブジェクトの完全なパスを指定します。オブジェクトの完全なパスにバケット名を含めないでください。
request.keys = @[@"exampleobject.txt", @"testfolder/sampleobject.txt"];
// quiet を YES に設定すると、削除に失敗したオブジェクトのリストのみが返されます。
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;
}];
// 同期ブロッキングを実装して、タスクが完了するのを待ちます。
// [deleteTask waitUntilFinished];関連ドキュメント
単一オブジェクトの削除
単一のオブジェクトを削除するために呼び出すことができる API 操作の詳細については、「DeleteObject」をご参照ください。
複数オブジェクトの一括削除
複数のオブジェクトを削除するために呼び出すことができる API 操作の詳細については、「DeleteMultipleObjects」をご参照ください。
OSSClient インスタンスを初期化する方法の詳細については、「初期化」をご参照ください。