rails version 5.2
我有一个场景,我需要使用亚马逊s3访问Rails Active Storage的公共URL来制作带Sidekiq后台作业的zip文件.
我很难获得实际的文件网址.我试过以下
rails_blob_url
但它让我跟随
http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZUk9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--9598613be650942d1ee4382a44dad679a80d2d3b/sample.pdf
如何通过sidekiq访问真实文件网址?
storage.yml test: service: Disk root: <%= Rails.root.join("tmp/storage") %> local: service: Disk root: <%= Rails.root.join("storage") %> development: service: S3 access_key_id: 'xxxxx' secret_access_key: 'xxxxx' region: 'xxxxx' bucket: 'xxxxx'
development.rb
config.active_storage.service = :development
我可以在web界面上访问这些,但不能在sidekiq中访问
解决方法
使用
ActiveStorage::Blob#service_url
.例如,假设Post模型具有单个附加的header_image:
@post.header_image.service_url