【发布时间】:2014-03-01 00:38:23
【问题描述】:
我正在为 S3 使用官方的 AWS ruby gem,但在对其中包含特殊字符(即逗号、撇号)的文件使用“url_for”方法时遇到了问题。我正在为 ruby 使用最新的 aws-sdk gem,我的代码如下所示:
s3 = AWS::S3::new
bucket = s3.buckets[bucket]
object = bucket.objects[object_address]
object_url = object.url_for(:read, :expires => 60*60, :secure => true)
对象被正确找到,但我从 url_for 获得的 URL 给了我一个 HTTPError: 404 Not Found 错误。如果文件名中没有逗号或撇号,它可以正常工作。
有没有一种方法可以在不需要限制文件名的情况下处理这个问题?
【问题讨论】:
-
您的网址是什么样的?
-
为了隐私,我已经更换了一些部分,但这就是它的要点。它也以 https 开头... //mybucket.s3.amazonaws.com/mypathstuff/test%2Ctest.png?AWSAccessKeyId=MYACCESSKEY&Expires=1323005992&Signature=lettersandnumbers%2Bt2RtdCnBAA%3D
-
我替换的部分是“mybucket”、“mypathstuff”和“lettersandnumbers”。我已尝试对 URL 进行编码/解码,但没有任何好处。
标签: ruby-on-rails ruby ruby-on-rails-3 amazon-s3