Rails Active Storage创建直接下载链接

时间:2019-05-10 02:48:16

标签: ruby-on-rails rails-activestorage

我正在使用带有Rails 5.2的Active Storage。

当我为图像创建下载链接时,它会为blob生成一个指向Rails应用程序的URL。

有什么方法可以创建目录指向S3之类的云服务的下载链接,而无需重定向到Rails应用程序?

2 个答案:

答案 0 :(得分:2)

您可以使用活动存储service_url这样的方法来获取文件的链接:

Model.last.attachement.service_url

它将为您的附件返回服务链接。可以进一步了解service_url here

答案 1 :(得分:1)

service_url方法是正确的方法,但是请记住,生成的url将及时过期。由于重定向,以这种方式生成的url也可能会变慢(Active Storage会生成指向Rails应用程序的URL。在访问时,这些URL会重定向到该文件的实际服务端点)。

如果您想生成永久的直接url进行附加,则Active Storage在没有黑客的情况下是行不通的。

有几个建议可以扩展Active Storage中的此功能: https://github.com/rails/rails/issues/34552#issuecomment-469530719