【发布时间】:2016-03-10 08:36:05
【问题描述】:
我的 S3 存储桶中有路径,由于代码错误,最终看起来像这样:
/folder///image.png
是的,这些是空白文件夹名称。 S3 可以识别它们,我可以在浏览器中正常查看它们。
但是当我使用 boto 尝试像这样访问它们时:
key = Key(bucket)
key.name = "/folder///image.png"
key.exists() [returns False]
它会像这样截断请求中的名称
/folder/image.png
删除重复的 /,因此没有引用正确的键。
有没有办法解决这个问题?
【问题讨论】:
-
文件夹只是前缀,所以它们不是真正的文件夹,而是一个名为“folder/folder/folder/object.ext”的对象,如果你使用'/'然后是浏览器/客户端会将其视为一个集合并将它们分组以看起来像一个文件系统。结果,我怀疑您的对象被称为“folder/image.png”或“folder///image.png”,而 boto 不确定如何处理额外的 / 并正在删除它。我很难认为它实际上是空的,而是一个非打印字符.. 例如 ^M 或
。你能显示 .get_all_keys() 或类似的结果吗?