Cette rubrique explique comment supprimer un seul objet ou plusieurs objets à la fois.
Les objets supprimés ne peuvent pas être restaurés. Faites preuve de prudence lors de la suppression d'objets.
Notes d'utilisation
Pour supprimer un objet, vous devez disposer des permissions en écriture sur le bucket dans lequel l'objet est stocké.
Avant d'exécuter l'exemple de code de cette rubrique, vous devez créer une instance OSSClient en utilisant des méthodes telles que l'utilisation d'un nom de domaine personnalisé ou du Security Token Service (STS). Pour plus d'informations, consultez Initialisation (SDK Android).
Supprimer un seul objet
L'exemple de code suivant montre comment supprimer un objet nommé exampleobject.txt d'un bucket nommé examplebucket :
// Create a delete request.
// Specify the bucket name (for example, examplebucket) and the full path of the object (for example, exampledir/exampleobject.txt). The full path of the object cannot contain the bucket name.
DeleteObjectRequest delete = new DeleteObjectRequest("examplebucket", "exampledir/exampleobject.txt");
// Delete the object asynchronously.
OSSAsyncTask deleteTask = oss.asyncDeleteObject(delete, new OSSCompletedCallback<DeleteObjectRequest, DeleteObjectResult>() {
@Override
public void onSuccess(DeleteObjectRequest request, DeleteObjectResult result) {
Log.d("asyncDeleteObject", "success!");
}
@Override
public void onFailure(DeleteObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
// Request error.
if (clientExcepion != null) {
// A client exception occurred, such as a network exception.
clientExcepion.printStackTrace();
}
if (serviceException != null) {
// A server exception occurred.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
Supprimer plusieurs objets à la fois
Vous pouvez supprimer jusqu'à 1 000 objets à la fois.
Le résultat de la suppression peut être renvoyé selon deux modes. Sélectionnez un mode de retour en fonction de vos besoins.
verbose (par défaut) : Si isQuiet n'est pas spécifié ou est défini sur false, une liste de tous les objets supprimés est renvoyée.
quiet : Si isQuiet est défini sur true, une liste des objets dont la suppression a échoué est renvoyée.
L'exemple de code suivant montre comment supprimer plusieurs objets spécifiés d'un bucket nommé examplebucket et renvoyer le résultat en mode quiet :
// Specify the full paths of the objects that you want to delete. The full paths of the objects cannot contain the bucket name.
List<String> objectKeys = new ArrayList<String>();
objectKeys.add("exampleobject.txt");
objectKeys.add("testfolder/sampleobject.txt");
// Set the mode to basic mode to return only the list of files that failed to be deleted.
DeleteMultipleObjectRequest request = new DeleteMultipleObjectRequest("examplebucket", objectKeys, true);
oss.asyncDeleteMultipleObject(request, new OSSCompletedCallback<DeleteMultipleObjectRequest, DeleteMultipleObjectResult>() {
@Override
public void onSuccess(DeleteMultipleObjectRequest request, DeleteMultipleObjectResult result) {
Log.i("DeleteMultipleObject", "success");
}
@Override
public void onFailure(DeleteMultipleObjectRequest request, ClientException clientException, ServiceException serviceException) {
// Request error.
if (clientException != null) {
// A client exception occurred, such as a network exception.
clientException.printStackTrace();
}
if (serviceException != null) {
// A server exception occurred.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
Références
-
Supprimer un seul objet
Pour plus d'informations sur l'opération API que vous pouvez appeler pour supprimer un seul objet, consultez DeleteObject.
-
Supprimer plusieurs objets à la fois
Pour obtenir des informations sur l'opération API que vous pouvez appeler pour supprimer plusieurs objets à la fois, consultez DeleteMultipleObjects.
Pour plus d'informations sur l'initialisation d'une instance OSSClient, consultez Initialisation.