Rails Paperclip S3签名网址不再有效

时间:2014-08-10 09:01:07

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

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

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

有了这个链接,我试图在8月10日欧洲中部时间上午10点56分下载一个文件。可能会出现时区问题吗?如何读取该URL中的Expires参数。

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

提前谢谢!

2 个答案:

答案 0 :(得分:1)

这回答了您的问题 - '如何读取该网址中的Expires参数。'问题:

过期时间定义为Epoch time。为了查看那个时间,您可以运行以下ruby代码:

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

返回:

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

希望它有所帮助。

答案 1 :(得分:0)

好的,我发现了问题:

正如我所说,链接看起来像这样:

  

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

问题是 u0026 ,必须用“& ” - 符号代替。我会考虑如何解决问题。但至少它被确定:)