我正在使用 ActiveStorage 上传 PDF 和图像。由于一些隐私问题,PDF 需要在本地存储,而图像需要使用 Amazon S3 存储。但是,看起来 ActiveStorage 只支持为每个环境设置一种服务类型(除非您使用镜像功能,在这种情况下它不能满足我的需要)。
有没有办法在同一环境中使用不同的服务配置?例如,如果一个模型 has_one_attached pdf
它使用本地服务:
local:
service: Disk
root: <%= Rails.root.join("storage") %>
如果另一个模型
has_one_attached image
它使用亚马逊服务:amazon:
service: S3
access_key_id: ""
secret_access_key: ""
最佳答案
Rails 6.1 现在支持这个。
根据 this article ,您可以指定 service
用于每个 attached
:
class MyModel < ApplicationRecord
has_one_attached :private_document, service: :disk
has_one_attached :public_document, service: :s3
end
关于ruby-on-rails - 使用多个 Rails ActiveStorage 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50418255/