Rails API ActiveStorage:获取公共URL以显示来自AWS S3存储桶的图像吗?

时间:2018-12-12 22:04:05

标签: ruby-on-rails reactjs amazon-s3 rails-activestorage

我已经设置了Rails 5.2 API,并遵循了有关如何将图像附加到模型对象的文档-一切正常。我遇到的问题是我想在JSON对象中返回附件的公共URL,以便可以在React前端的<img src...中使用该URL作为源。有没有一种方法可以从AWS S3存储桶中返回实际URL,如果单击该图像,该图像将显示在哪里?

现在,我尝试了rails_blob_pathservice_url,但确实得到了URL作为回报,但是它们都不以我希望的方式实际呈现图像。有任何解决方法吗?

同样,只希望附件的实际公共URL来自s3,因此我可以将其插入src内的<img>属性中并显示它。谢谢。

我的development.rb文件配置config.active_stoarge.service = :amazon

我的storage.yml文件具有如下配置的Amazon: amazon: service: S3 access_key_id: <%= Rails.application.secrets.amazon[:access_key] %> secret_access_key: <%= Rails.application.secrets.amazon[:secret_key] %> region: us-east-2 bucket: my_bucket_name_here

ActiveStorage 5.2.2

Rails 5.2.2

1 个答案:

答案 0 :(得分:1)

您应该可以使用rails_blob_urlrails_blob_path创建指向实际文件的链接。

https://edgeguides.rubyonrails.org/active_storage_overview.html#linking-to-files