我可以将 Shrine 上传凭证添加到模型吗
Can I add Shrine upload credentials to the model
我有一个基于 rails5 的多租户站点,每个租户都添加了自己的 s3 凭据,因此,在他们的租户站点上发生的任何上传都会上传到他们自己的 s3 帐户。
我目前遇到的问题是 Shrine 似乎只允许我在初始化程序中添加 s3 凭据。这很好用,但我想将它添加到模型中,以便我可以根据当时使用的租户动态填充 s3 凭据。有谁知道神社可以帮助我吗?
我设法用回形针做到了这一点,但它带来了其他问题,例如后台处理等
您可以在初始化程序中定义所有存储:
Shrine.storages = {
first_storage: Shrine::Storage::S3.new(
bucket: "my-first-bucket", # required
region: "eu-west-1", # required
access_key_id: "abc",
secret_access_key: "xyz"),
second_storage: Shrine::Storage::S3.new(
bucket: "my-second-bucket", # required
region: "eu-east-1", # required
access_key_id: "efg",
secret_access_key: "uvw")
}
注意:这不是所有存储代码 - :cache
和 :store
存储都应该被定义。
然后在模型中使用它们:
class Photo
include ImageUploader::Attachment(:image)
end
photo = Photo.new
photo.image_attacher.upload(io, :first_storage)
photo.image_attacher.upload(other_io, :second_storage)
见神社随从doc page and source code
我有一个基于 rails5 的多租户站点,每个租户都添加了自己的 s3 凭据,因此,在他们的租户站点上发生的任何上传都会上传到他们自己的 s3 帐户。
我目前遇到的问题是 Shrine 似乎只允许我在初始化程序中添加 s3 凭据。这很好用,但我想将它添加到模型中,以便我可以根据当时使用的租户动态填充 s3 凭据。有谁知道神社可以帮助我吗?
我设法用回形针做到了这一点,但它带来了其他问题,例如后台处理等
您可以在初始化程序中定义所有存储:
Shrine.storages = {
first_storage: Shrine::Storage::S3.new(
bucket: "my-first-bucket", # required
region: "eu-west-1", # required
access_key_id: "abc",
secret_access_key: "xyz"),
second_storage: Shrine::Storage::S3.new(
bucket: "my-second-bucket", # required
region: "eu-east-1", # required
access_key_id: "efg",
secret_access_key: "uvw")
}
注意:这不是所有存储代码 - :cache
和 :store
存储都应该被定义。
然后在模型中使用它们:
class Photo
include ImageUploader::Attachment(:image)
end
photo = Photo.new
photo.image_attacher.upload(io, :first_storage)
photo.image_attacher.upload(other_io, :second_storage)
见神社随从doc page and source code