Это дизайн, от ActiveStorage.Файл сохраняется по ключу и без расширения на S3, но когда URL-адрес создается ActiveStorage, расположение и имя файла устанавливаются .
def url(key, expires_in:, filename:, disposition:, content_type:)
instrument :url, key: key do |payload|
generated_url = object_for(key).presigned_url :get, expires_in: expires_in.to_i,
response_content_disposition: content_disposition_with(type: disposition, filename: filename),
response_content_type: content_type
payload[:url] = generated_url
generated_url
end
end
* 1007.* Это, вероятно, сделано для того, чтобы избежать проблем с именами файлов, с которыми вы могли бы столкнуться в противном случае.
Подробнее о Content-Disposition
заголовках можно прочитать здесь .