S3使用boto3删除文件夹中的文件

2024-04-24 00:42:53 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用boto3删除S3文件夹中的文件?你知道吗

注意-只有文件应该被删除,文件夹应该保留。你知道吗


Tags: 文件文件夹s3boto3
1条回答
网友
1楼 · 发布于 2024-04-24 00:42:53

您可以使用^{}

import boto3

s3_client = boto3.client('s3')

response = client.delete_object(
    Bucket='my-bucket',
    Key='invoices/January.pdf'
)

如果您询问如何删除文件夹中的所有文件,则需要遍历具有给定前缀的所有对象:

import boto3

s3_client = boto3.client('s3')

BUCKET = 'my-bucket'
PREFIX = 'folder1/'

response = s3_client.list_objects_v2(Bucket=BUCKET, Prefix=PREFIX)

for object in response['Contents']:
    print('Deleting', object['Key'])
    s3_client.delete_object(Bucket=BUCKET, Key=object['Key'])

另外,请注意文件夹实际上并不存在于amazons3中。对象的键(文件名)包含对象的完整路径。如有必要,您可以使用文件夹的名称创建一个长度为零的文件,以使文件夹“出现”,但这不是必需的。仅仅在给定的路径中创建一个文件夹会使任何子文件夹“出现”,但是当对象被删除时它们会“消失”(因为文件夹实际上并不存在)。你知道吗

相关问题 更多 >