【问题标题】:AWS S3 403 server error due to backup file由于备份文件,AWS S3 403 服务器错误
【发布时间】:2016-04-11 09:43:46
【问题描述】:

使用 boto 进行文件上传时,我遇到了一个奇怪的 403 Forbidden 错误,就像许多其他用户一样。 提供给他们的解决方案都不适合我。

问题是,我在我的存储桶上上传了很多文件,其中大部分都可以正常工作,直到有一个文件出现 403 错误。

我进一步意识到问题来自一个名为 UUID_Server.csv 的文件~

重命名文件、删除波浪号时,一切正常。 我在我的脚本中做了一个解决方法,但解决方案并不优雅。

知道为什么 '~' 不会被 s3 消化吗? 我不使用任何配置文件,一切都在脚本中。我的python版本是2.7.3,boto是最新的。

提前致谢。

【问题讨论】:

    标签: python amazon-s3 backup boto http-status-code-403


    【解决方案1】:

    AWS S3 可以在文件名中使用 ~

    使用 AWSCLI aws 命令我能够上传名为 data.txt~ 的文件。

    不管怎样,你说boto 是最新的。如果你查看这个项目的 README.rst,你会发现:

    boto 2.39.0
    
    Released: 9-Apr-2015
    

    今天一年零两天没有更新。

    这个包中的问题越来越多,根据 Mitch Garnaat(boto 的作者)comment to my issue “没有回家的路”,未来的发展只有 boto3 .

    所以我的建议是:尝试将脚本重写为boto3,它可能会更好地工作并且会保持更长时间。

    【讨论】:

    • 因为 ~ 是一个需要通过 url 编码在 URL 中进行特殊处理的字符(或者可能在不需要时进行特殊处理),并且签名代码必须生成一个签名匹配编码,这似乎是解释问题的可能候选者,以及不推荐使用的 boto 状态......嗯,是的。它应该起作用了。 +1
    • 我用(几乎)完全相同的脚本切换到 boto3。这次效果很好,谢谢!
    • @Sogeking 访问boto 页面我发现pull request dealing with your problem 一周前合并到master。我想知道他们是否会发布新版本,或者会像现在一样将boto 保持在“如果你喜欢就使用开发版本”的状态。很好,你切换到boto3
    猜你喜欢
    • 2018-06-01
    • 2015-10-01
    • 2014-11-22
    • 2012-01-25
    • 2022-01-25
    • 1970-01-01
    • 2017-02-27
    • 2011-08-27
    • 1970-01-01
    相关资源
    最近更新 更多