问题描述
我想在邮件程序中使用 active_storage 表示。
rails_blob_path(@post.photos.first.img).variant(resize: "300x300")
不起作用,所有通过 rails_blob_path(@post.photos.first.img)
生成的链接都会在 5 分钟后过期。
有没有办法生成永久的长期存在的网址?
Rails.application.routes.url_helpers.rails_blob_url(@post.photos.first.img.variant(resize: "300x300"),only_path: true)
Return NoMethodError: undefined method `signed_id'
解决方法
Rails 6.1 引入了对公共存储的支持。例如:
s3_public:
service: S3
access_key_id: <%= Rails.application.credentials.dig(:s3,:access_key_id) %>
secret_access_key: <%= Rails.application.credentials.dig(:s3,:secret_access_key) %>
bucket: bucket_name
public: true
您可以在每个附件的基础上设置存储服务,以防您不希望所有内容都公开:
has_one_attached :pdf,service: :s3_public