删除目录存储桶中的对象 - Amazon Simple Storage Service

删除目录存储桶中的对象

您可以使用 Amazon S3 控制台、AWS Command Line Interface(AWS CLI)或 AWS SDK 从 Amazon S3 目录桶中删除对象。有关更多信息,请参阅目录存储桶概述目录存储桶和 S3 Express One Zone

警告
  • 删除对象的操作无法撤销。

  • 此操作将删除所有指定的对象。删除文件夹时,请等待删除操作完成,然后再将新对象添加到文件夹。否则,新对象也可能会被删除。

注意

当以编程方式从目录桶中删除多个对象时,请注意以下事项:

  • DeleteObjects 请求中的对象键必须至少包含一个非空格字符。不支持完全由空格字符组成的字符串。

  • DeleteObjects 请求中的对象键不能包含 Unicode 控制字符,但换行符(\n)、制表符(\t)和回车符(\r)除外。

删除对象
  1. 登录到 AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择存储桶

  3. 选择目录桶选项卡。

  4. 选择包含您要删除的对象的目录桶。

  5. 请选择对象选项卡。在对象列表中,选中要删除的一个或多个对象左侧的复选框。

  6. 选择删除

  7. 删除对象页面上,在文本框中输入 permanently delete

  8. 选择删除对象

SDK for Java 2.x

下面的示例通过使用 AWS SDK for Java 2.x 删除目录桶中的对象。

static void deleteObject(S3Client s3Client, String bucketName, String objectKey) { try { DeleteObjectRequest del = DeleteObjectRequest.builder() .bucket(bucketName) .key(objectKey) .build(); s3Client.deleteObject(del); System.out.println("Object " + objectKey + " has been deleted"); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
SDK for Python

下面的示例通过使用 AWS SDK for Python (Boto3) 删除目录桶中的对象。

import logging import boto3 from botocore.exceptions import ClientError def delete_objects(s3_client, bucket_name, objects): ''' Delete a list of objects in a directory bucket :param s3_client: boto3 S3 client :param bucket_name: Bucket that contains objects to be deleted; for example, 'doc-example-bucket--usw2-az1--x-s3' :param objects: List of dictionaries that specify the key names to delete :return: Response output, else False ''' try: response = s3_client.delete_objects( Bucket = bucket_name, Delete = { 'Objects': objects } ) return response except ClientError as e: logging.error(e) return False if __name__ == '__main__': region = 'us-west-2' bucket_name = 'BUCKET_NAME' objects = [ { 'Key': '0.txt' }, { 'Key': '1.txt' }, { 'Key': '2.txt' }, { 'Key': '3.txt' }, { 'Key': '4.txt' } ] s3_client = boto3.client('s3', region_name = region) results = delete_objects(s3_client, bucket_name, objects) if results is not None: if 'Deleted' in results: print (f'Deleted {len(results["Deleted"])} objects from {bucket_name}') if 'Errors' in results: print (f'Failed to delete {len(results["Errors"])} objects from {bucket_name}')

以下 delete-object 示例命令显示如何使用 AWS CLI 从目录存储桶中删除对象。要运行此命令,请将 user input placeholders 替换为您自己的信息。

aws s3api delete-object --bucket bucket-base-name--azid--x-s3 --key KEY_NAME

有关更多信息,请参阅《AWS CLI 命令参考》中的 delete-object