gpt4 book ai didi

ruby-on-rails - 影响 aws-sdk ruby​​ gem url_for 方法的文件名中的特殊字符

转载 作者:数据小太阳 更新时间:2023-10-29 07:17:13 24 4
gpt4 key购买 nike

我正在为 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 错误。如果文件名中没有逗号或撇号,它可以正常工作。

有没有办法在一开始就不需要限制文件名的情况下处理这个问题?

最佳答案

您是否默认转义 URL 字符串?例如:

object_url =  CGI.escape(object.url_for(:read, :expires => 60*60, :secure => true))

这会将字符串正确地转义为浏览器可读的格式。我对我所有的安全 S3 URL 都这样做,因为有时签名中有 /+ 字符,如果未正确转义,也会导致链接失败.这也将正确转义逗号和撇号。

关于ruby-on-rails - 影响 aws-sdk ruby​​ gem url_for 方法的文件名中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8380193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com