Con el SDK de iOS, puede eliminar uno o varios objetos a la vez de un bucket de OSS.
Los objetos eliminados no se pueden recuperar. Tenga precaución al ejecutar operaciones de eliminación.
Notas de uso
Antes de ejecutar el código de ejemplo de este tema, debe crear una instancia de OSSClient mediante métodos como un nombre de dominio personalizado o Security Token Service (STS). Para obtener más información, consulte Initialization.
Para eliminar un objeto, debe tener permisos de escritura en el bucket donde se almacena dicho objeto.
Eliminar un solo objeto
En el siguiente ejemplo se muestra cómo eliminar un objeto llamado exampleobject.txt de un bucket denominado examplebucket:
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];
Eliminar varios objetos a la vez
Puede eliminar hasta 1,000 objetos simultáneamente.
Los resultados pueden devolverse en uno de los siguientes modos:
verbose: Si quiet se establece en NO, se devuelve la lista de todos los objetos eliminados.
quiet: Si no se especifica quiet o se establece en YES, solo se devuelve la lista de objetos cuya eliminación falló.
En el siguiente ejemplo se muestra cómo eliminar varios objetos de un bucket llamado examplebucket y devolver el resultado en modo quiet:
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];
Referencias
-
Eliminar un solo objeto
Para consultar la operación de API utilizada para eliminar un solo objeto, consulte DeleteObject.
-
Eliminar varios objetos a la vez
Para consultar la operación de API utilizada para eliminar varios objetos, consulte DeleteMultipleObjects.
Para obtener más información sobre cómo inicializar una instancia de OSSClient, consulte Initialization.