【问题标题】:Boto handling S3 key paths with empty folder namesBoto 处理具有空文件夹名称的 S3 密钥路径
【发布时间】: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() 或类似的结果吗?

标签: python amazon-s3 boto


【解决方案1】:

k.bucket.connection.suppress_consec_slashes = False

【讨论】:

    猜你喜欢
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 2010-10-10
    • 1970-01-01
    • 2020-03-27
    • 2012-12-12
    相关资源
    最近更新 更多