通常被解释为S3上没有文件夹/目录,这是真的,但是有PREFIX对象。在某些情况下——例如,使用riofs将文件系统"挂载"到S3上——知道如何创建这样一个文件系统实际上是很有用的。
有谁知道是否有一个"正确"的方法来做到这一点与AWS CLI?使用低级API aws s3api ...
相关SO帖子:
Amazon S3 boto -如何创建一个文件夹?
通过s3cmd (Amazon S3)创建文件夹
公立小学我还想指出,在AWS控制台中,这个操作实际上被命名为"创建文件夹…",所以告诉人们在S3上没有文件夹的"概念"是不公平的。
多谢!
经过一些快速的摆弄,我发现这似乎工作:
aws s3api put-object --bucket test --key dir-test/
但它只有在--key
的参数末尾包含"/"时才有效。那部分感觉不对……肯定有更好的办法吧?
S3中真的没有目录。然而,正如您所指出的,有前缀和分隔符,默认的分隔符是/
,它允许您在S3桶中获得非常令人信服的分层目录结构模拟。
但是bucket仍然只是一个平面空间,其中包含具有键名的对象。如果要创建目录,则必须创建一个对象,该对象的名称包含或以分隔符结束(默认为/
)。所以你上面描述的技巧可能感觉不对,但这是唯一的方法。
在控制台上想出创建文件夹想法的人应该为自己感到羞耻。
在复制/移动之前保存文件夹名称,并将/DirName添加为目的地
DirName = "Hello"
s3bucket = "s3://mybucket"
os.system("aws s3 cp " + DirName + " " + s3//mybucket" + "/" + DirName + " --recursive")