【问题标题】:Rails Paperclip S3 signed URL not working anymoreRails Paperclip S3 签名 URL 不再工作
【发布时间】:2014-08-10 09:01:06
【问题描述】:

几个月前,我建立了一个 Rails 应用程序。上传的图片保存在 S3 上的私有存储桶中。我可以通过过期的 URL 下载它们。现在这不再起作用了,即使我没有改变任何东西。可能是什么原因?时区问题?

我生成的链接如下所示: http:// [bucket] .s3-eu-west-1.amazonaws.com//original/image.jpg?AWSAccessKeyId= [AQCCESS_KEY] \u0026Expires=1408020974\u0026Signature= [签名]

通过此链接,我尝试在 8 月 10 日中欧时间上午 10 点 56 分下载文件。可能存在时区问题?如何读取该 URL 中的 Expires 参数。

知道这可能是什么问题吗?

提前谢谢你!

【问题讨论】:

    标签: ruby-on-rails amazon-s3 paperclip


    【解决方案1】:

    这回答了您的问题 -“我如何读取该 URL 中的 Expires 参数。?”问题:

    到期时间定义为Epoch time。为了查看时间是什么,您可以运行以下 ruby​​ 代码:

    require 'date'    
    DateTime.strptime("1408020974",'%s').to_s
    

    返回这个:

    "2014-08-14T12:56:14+00:00"
    

    希望对你有帮助。

    【讨论】:

    • 谢谢!好消息是:我知道如何读取日期,而且到期时间似乎没有问题。坏消息:问题一定出在其他地方。但我看不出还有什么问题。签名 URL 的创建过程中一定有问题。我检查 AWS 密钥和密钥。他们都是正确的。有没有办法轻松生成签名 URL,以便我检查可能的错误?
    【解决方案2】:

    好的,我发现问题了:

    正如我所说,链接如下所示:

    http:// [bucket] .s3-eu-west-1.amazonaws.com//original/image.jpg?AWSAccessKeyId= [AQCCESS_KEY] \u0026Expires=1408020974\u0026Signature= [签名]

    问题是 u0026 必须替换为“&”-符号。我会考虑如何解决这个问题。但至少它是确定的:)

    【讨论】:

      猜你喜欢
      • 2016-05-08
      • 2014-05-15
      • 2016-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-19
      • 1970-01-01
      • 2014-09-01
      相关资源
      最近更新 更多