将存储桶内容设置为公共时导致错误的目录名称?

Posted

技术标签:

【中文标题】将存储桶内容设置为公共时导致错误的目录名称?【英文标题】:Directory names causing errors when setting bucket contents to public? 【发布时间】:2018-07-15 21:40:21 【问题描述】:

我正在使用s3cmd(2.0.1 版)将存储桶/目录的所有内容设置为公开,但我无法将对象的 acl 设置为以所有小写字符命名的目录的公开。如果存储桶名称全部为大写,或者大小写混合,我只能将存储桶内容设置为公开。

例如,这不起作用:

我使用 rclone 创建了一个新存储桶: rclone mkdir remotename:name 然后尝试将内容设置为公开:s3cmd setacl s3://name --acl-public 并得到错误ERROR: S3 error: 405 (MethodNotAllowed)

但这确实有效:

创建一个新存储桶:rclone mkdir remotename:NEWNAME 并成功将其内容设置为公开:s3cmd setacl s3://NEWNAME --acl-public

我可以调用我的存储桶/目录是否有限制,或者我对使用 s3cmd 将存储桶内容设置为公开有什么不理解?

【问题讨论】:

【参考方案1】:

啊,搞定了。该问题与 s3cmd 有关。在host_bucket 行上的.s3cfg 文件中,我删除了$(bucket) 之后的“s”。一旦我这样做了,我就可以创建并公开我想要的任何存储桶名称。

【讨论】:

以上是关于将存储桶内容设置为公共时导致错误的目录名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 javascript fetch 函数时设置公共 Google Cloud Storage 存储桶的 CORS 以避免错误?

使用依赖于存储桶名称的模板设置 S3 存储桶策略时如何避免循环错误?

将对象保存在具有公共访问权限的 AWS S3 存储桶中

从 Azure 数据块读取 Amazon S3 特定文件夹,无需公开访问存储桶

Python boto,列出桶中特定目录的内容

如何列出 aws S3 存储桶目录中的项目