删除目录存储桶中的对象 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

删除目录存储桶中的对象

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

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

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

注意

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

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

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

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

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

  3. 选择目录桶选项卡。

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

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

  6. 选择 删除

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

  8. 选择删除对象

SDK for Java 2.x

下面的示例通过使用 Amazon 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

下面的示例通过使用 Amazon 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 示例命令显示如何使用 Amazon CLI 从目录存储桶中删除对象。要运行此命令,请将 user input placeholders 替换为您自己的信息。

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

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