Joe*_*der 5 ruby ruby-on-rails amazon-s3 ruby-on-rails-3
我正在使用官方的AWS ruby gem for S3,我在使用"url_for"方法时遇到问题,因为它们中包含特殊字符的文件(即逗号,撇号).我正在使用最新的aws-sdk gem用于ruby,我的代码如下所示:
s3 = AWS::S3::new
bucket = s3.buckets[bucket]
object = bucket.objects[object_address]
object_url = object.url_for(:read, :expires => 60*60, :secure => true)
Run Code Online (Sandbox Code Playgroud)
正确找到该对象,但是我从url_for获取的URL给出了HTTPError:404 Not Found错误.如果文件名中没有逗号或撇号,它可以正常工作.
有没有办法处理这个,而不需要首先限制文件名?
默认情况下是否转义 URL 字符串?例如:
object_url = CGI.escape(object.url_for(:read, :expires => 60*60, :secure => true))
Run Code Online (Sandbox Code Playgroud)
这将正确地将字符串转义为浏览器可读的格式。我对所有安全 S3 URL 都执行此操作,因为有时签名中存在/or+字符,如果未正确转义,也会导致链接失败。这也将正确地转义逗号和撇号。
| 归档时间: |
|
| 查看次数: |
1408 次 |
| 最近记录: |