【发布时间】:2021-07-03 14:30:39
【问题描述】:
我已经上传了 5k+ 个文件夹,每个文件夹应该有一个文件和一个子文件夹(这个子文件夹然后包含各种文件)到 DigitalOcean Spaces(S3 存储)。
看起来有些上传失败(长话短说)。有没有办法使用s3cmd 列出所有空文件夹?
【问题讨论】:
标签: amazon-web-services amazon-s3 s3cmd
我已经上传了 5k+ 个文件夹,每个文件夹应该有一个文件和一个子文件夹(这个子文件夹然后包含各种文件)到 DigitalOcean Spaces(S3 存储)。
看起来有些上传失败(长话短说)。有没有办法使用s3cmd 列出所有空文件夹?
【问题讨论】:
标签: amazon-web-services amazon-s3 s3cmd
我在这里的 cmets 是关于 Amazon S3,但应该同样适用于 DigitalOcean Spaces。
“文件夹”实际上并不存在于 S3 中。例如,您可以将文件上传到invoices/january/inv1.txt,S3 将神奇地创建invoices 和january 文件夹。然后,如果您删除该对象,这些文件夹将神奇地消失。因此,当对象在其中时,文件夹会自动出现。
可以通过创建一个与路径同名的零长度对象来创建一个空文件夹。例如,使用invoices/ 的键创建一个长度为零的对象将强制显示一个文件夹,即使它是空的(因为它实际上不是空的!)。当人们单击“创建文件夹”按钮时,这就是 S3 管理控制台创建文件夹的方式。
因此,当您询问如何“列出所有空文件夹”时,这实际上取决于这些文件夹最初是如何创建的,或者它们是否真的被创建了!很有可能一开始就没有创建这些文件夹。
如果您的目标是修复上传失败的问题,您可以使用 s3cmd sync 函数重新上传对象,但它足够聪明,只复制目标中不存在或已更改的文件。
【讨论】: