删除Ruby中的URL前缀

时间:2014-06-08 20:42:25

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个像这样的S3网址:

https://bucket.s3.amazonaws.com/uploads/1c4248b2-4256-4af4-ac1b-0e1e3f7ec2c8/filename.jpg

我想做的是,使用Ruby删除前缀https://bucket.s3.amazonaws.com/,只留下uploads/1c4248b2-4256-4af4-ac1b-0e1e3f7ec2c8/filename.jpg

我不确定是否使用gsub只是用空格替换前缀(硬编码)是正确的方法 - 或者,如果有更有效的方法。

url.gsub('https://bucket.s3.amazonaws.com/', '')

1 个答案:

答案 0 :(得分:1)

您可以使用ruby标准库中的URI

irb> require 'uri'
=> true

irb> u = URI("https://bucket.s3.amazonaws.com/uploads/1c4248b2-4256-4af4-ac1b-0e1e3f7ec2c8/filename.jpg")
=> #<URI::HTTPS:0x000000020995f0 URL:https://bucket.s3.amazonaws.com/uploads/1c4248b2-4256-4af4-ac1b-0e1e3f7ec2c8/filename.jpg>

irb> u.path
=> "/uploads/1c4248b2-4256-4af4-ac1b-0e1e3f7ec2c8/filename.jpg"

或者u.request_uri也会返回URI上的所有参数。