iye*_*and 1 amazon-s3 amazon-web-services
所以,我在 S3 上有以下结构:
主桶
DataFeeds/
我们遇到了文件夹被删除的事件!所以,我测试了以下内容:
aws s3api put-object --bucket mainbucket --key DataFeeds/.donotdelete
Run Code Online (Sandbox Code Playgroud)
但是,如果我执行此操作(blah.txt
即使不存在也删除),该DataFeeds/
文件夹也会被删除:
aws s3 rm s3://mainbucket/DataFeeds/blah.txt
Run Code Online (Sandbox Code Playgroud)
那么,我们如何防止文件夹被删除呢S3
?
使用的版本:
aws-cli/2.2.46 Python/3.9.7 Darwin/20.6.0 source/x86_64 prompt/off
Amazon S3 中不存在文件夹。它是一种“平面”存储服务,其中Key
对象的(文件名)包含完整路径,包括目录。
Amazon S3 将为您“模拟”文件夹。例如,如果您将文件上传到invoices/january.txt
,那么该invoices
目录将“神奇地”出现。如果您随后删除该对象,该目录将“消失”。这是因为它从未真正存在过。
如果您使用S3 管理控制台中的“创建文件夹”按钮,它将创建一个与目录同名的零长度对象。这将“强制”目录出现在存储桶列表中。如果不存在具有相同前缀(路径)的对象,则删除零长度对象将导致目录消失。
使用 S3 的最佳建议是假装文件夹存在。您可以将对象放置在任何路径中,(假装)目录将神奇地出现。不要担心目录会消失,因为它们实际上从未存在过!
如果您确实需要保留空目录,请使用“创建文件夹”按钮来创建零长度对象。它会一直存在,直到您删除零长度对象。