如何使用 AWS CLI 在 S3 上创建"folder-like"(即前缀)对象?



通常被解释为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")

相关内容

  • 没有找到相关文章

最新更新