gpt4 book ai didi

amazon-web-services - 如何从 s3 存储桶中删除空子文件夹?

转载 作者:行者123 更新时间:2023-12-02 18:41:29 25 4
gpt4 key购买 nike

我正在代码中执行 2 个循环。下面是伪代码。

get the subfolder list in the bucket
Loop through every subfolders
loop through every objects in a subfolder
read the objects
delete the objects (So at the end the subfolder will be empty)
get the subfolder list again (asuming the empty subfolder also will be deleted and new subfolders can be created by someone)

但结果是我遇到了无限循环,因为子文件夹仍然在存储桶中。所以我正在寻找一种解决方案,在删除子文件夹中的每个对象后删除该子文件夹。但我找不到解决方案。请提出您的想法

下面是s3文件夹结构

├── bucket
└── folder-1
└── folder-2
└── folder-3

最佳答案

文件夹实际上并不存在于 Amazon S3 中。相反,每个对象的Key(文件名)由对象的完整路径组成。

因此,您只需循环遍历给定前缀的每个对象并删除这些对象即可。

这是一个 Python 示例:

import boto3

s3_resource = boto3.resource('s3')

for object in s3_resource.Bucket('bucket-name').objects.filter(Prefix='folder-name/'):
print('Deleting:', object.key)
object.delete()

这也会删除子文件夹中的对象,因为它们具有相同的前缀(并且文件夹实际上并不存在)。

关于amazon-web-services - 如何从 s3 存储桶中删除空子文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67945783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com