このトピックでは、一度に1つのオブジェクトまたは複数のオブジェクトを削除する方法について説明します。
警告 削除したオブジェクトを元に戻すことはできません。 オブジェクトを削除するときは注意してください。
使用上の注意
オブジェクトを削除するには、オブジェクトが保存されているバケットに対する書き込み権限が必要です。
単一のオブジェクトの削除
次のコードは、examplebucketという名前のバケットからexampleobject.txtという名前のオブジェクトを削除する方法の例を示しています。
OSSDeleteObjectRequest * delete = [OSSDeleteObjectRequest new];
// バケットの名前を指定します。 例: examplebucket.
delete.bucketName = @ "examplebucket";
// オブジェクトのフルパスを指定します。 フルパスにバケット名を含めることはできません。 例: exampleobject.txt。
delete.objectKey = @ "exampleobject.txt";
OSSTask * deleteTask = [クライアントdeleteObject: 削除];
[deleteTask continueWithBlock:^ id(OSSTask * task) {
if (!task.error) {
// ...
}
nilを返します。}];
// [deleteTask waitUntilFinished];
一度に複数のオブジェクトを削除する
一度に最大1,000個のオブジェクトを削除できます。
結果は、次の2つのモードで返すことができます。 要件に基づいて返品モードを選択します。
- verbose: quietがNOに設定されている場合、削除されたすべてのオブジェクトのリストが返されます。
- quiet: quietが指定されていないか、YESに設定されている場合、削除に失敗したオブジェクトのリストが返されます。 これはデフォルトの戻りモードです。
次のコードは、examplebucketという名前のバケットから複数の指定されたオブジェクトを削除し、その結果を静かなモードで返す方法の例を示しています。
OSSDeleteMultipleObjectsRequest * request = [OSSDeleteMultipleObjectsRequest new];
// バケットの名前を指定します。 例: examplebucket.
request.bucketName = @ "examplebucket";
// 削除する複数のオブジェクトのフルパスを指定します。 オブジェクトの完全なパスにバケット名を含めることはできません。
request.keys = @[@ "exampleobject.txt", @ "testfolder/sampleobject.txt"];
// quietをYESに設定すると、削除に失敗したオブジェクトのリストのみが返されます。
request.quiet = YES;
OSSTask * deleteMultipleObjectsTask = [クライアントdeleteMultipleObjects: リクエスト];
[deleteMultipleObjectsTask continueWithBlock:^ id(OSSTask * task) {
if (!task.error) {
OSSDeleteMultipleObjectsResult * result = task.result;
NSLog(@ "delete objects: % @", result.de letedObjects);
} else {
NSLog(@ "delete objects failed, error: % @", task.error);
}
nilを返します。}];
参考資料
- 単一のオブジェクトの削除
オブジェクトを削除するために呼び出すことができるAPI操作の詳細については、「DeleteObject」をご参照ください。
- 一度に複数のオブジェクトを削除する
複数のオブジェクトを削除するために呼び出すことができるAPI操作の詳細については、「DeleteMultipleObjects」をご参照ください。