#ruby-on-rails #ruby #amazon-web-services #amazon-s3 #ruby-on-rails-5
#ruby-на-рельсах #рубиновый #amazon-веб-сервисы #amazon-s3 #ruby-on-rails-5
Вопрос:
Я использую Shrine для прямой загрузки изображения в хранилище Amazon S3 в моем приложении. Он отлично работает с настройками по умолчанию. Но когда я пытаюсь изменить префикс загруженного изображения, префикс не изменился. И конечно, когда я затем попытался просмотреть изображение через браузер, я получил эту ошибку:
<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>store/cccd4928ef62740b851f7c278a3907ef.png</Key>
....
</Error>
Это моя текущая настройка в config/initializers/shrine.rb:
require "shrine/storage/s3"
s3_options = {
access_key_id: Rails.application.secrets.access_key_id,
secret_access_key: Rails.application.secrets.secret_access_key,
region: Rails.application.secrets.aws_region,
bucket: Rails.application.secrets.aws_bucket,
}
if Rails.env.development?
prefix = "dev"
else
prefix = "prod"
end
Shrine.storages = {
cache: Shrine::Storage::S3.new(prefix: prefix, **s3_options), #default prefix is "cache"
store: Shrine::Storage::S3.new(prefix: prefix, **s3_options), #default prefix is "store"
}
Shrine.plugin :activerecord
Shrine.plugin :upload_endpoint
Shrine.plugin :restore_cached_data
Ответ №1:
Решил это.
В основном в модели, где я ссылаюсь на класс Shrine ImageUploader, мне нужен user include ImageUploader::Attachment(:image)
, а include ImageUploader[:image]
не потому, что я использую Shrine.plugin :activerecord