View a markdown version of this page

删除目录存储桶中的对象 - 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 管理控制台,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/。

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

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

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

  5. 选择删除。

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

  7. 选择删除对象。

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
例

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

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--zone-id--x-s3 --key KEY_NAME

有关更多信息,请参阅《AWS CLI Command Reference》中的 delete-object。

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

delete.json 文件如下所示:

{ "Objects": [ { "Key": "0.txt" }, { "Key": "1.txt" }, { "Key": "2.txt" }, { "Key": "3.txt" } ] }

delete-objects 示例命令如下所示:

aws s3api delete-objects --bucket bucket-base-name--zone-id--x-s3 --delete file://delete.json

有关更多信息,请参阅《AWS CLI Command Reference》中的 delete-objects。