Когда файл загружается на S3, ответ из корзины S3 содержит правильный URL-адрес загруженного файла. Но скрепка генерирует URL, отличный от фактического.
Правильный URL-адрес выглядит примерно так: https://s3-us-west-2.amazonaws.com/my-bucket-local/uploads%2F1583953531486-lj6zdckcsj-9d6384a03fcd96941890332878d5a350%2F8481.jpg
Но URL-адрес скрепки для document.file.url
: //s3.amazonaws.com/my-bucket-local/documents/files/000/000/032/original/8481.jpg
ИЛИ https://my-bucket-local.s3.us-west-2.amazonaws.com/documents/files/000/000/026/original/8481.jpg с еще несколькими параметрами, такими как X-Amz-Algorithm
+ X-Amz-Credential
et c.
В моей модели документа , у меня есть has_attached_file :file
Ниже приведена конфигурация для среды разработки в моем development.rb
файле
config.paperclip_defaults = {
storage: :s3,
s3_region: ENV['AWS_REGION'],
s3_credentials: {
bucket: ENV['AWS_BUCKET'],
access_key_id: ENV['AWS_ACCESS_KEY_ID'],
secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
},
}
В моем контейнере s3 есть только папка uploads , и она содержит несколько подпапки с уникальными идентификаторами в качестве заголовков, и каждая подпапка содержит фактическое изображение файла.