У меня есть приложение Rails 5, использующее carrierwave
, carrierwave-aws
и гемы cloudfront-signer
. Я дал стандартное ведро, настроенное для Carrierwave. Я могу нормально загружать и обслуживать контент (т. Е. Пользовательские аватары и т. Д.).
У меня есть другой загрузчик, который имеет динамический сегмент (т. Е. Для каждого клиента) для разделения данных. Я могу загрузить без проблем. Проблема в том, что эти файлы не будут обслуживаться через облачный фронт (403 Запрещено). Я подозреваю, что базовая конфигурация CW пытается подписать сегменты, используя другой сегмент для доступа к файлам.
Вот моя загруженная конфигурация, которую я до сих пор пробовал:
def initialize(*)
super
# https://stackoverflow.com/questions/31589872/setup-for-an-uploader-carrierwave
self.aws_credentials = {
region: ENV['AWS_REGION']
}
self.aws_bucket = Apartment::Tenant.current
self.aws_signer = -> (unsigned_url, options) { Aws::CF::Signer.sign_url unsigned_url, options }
end
Этоустанавливает пользовательский сегмент, но кажется, что URL не работают. Они подписаны, но все возвращают 403.
Я подозреваю, что мне нужно передать параметры aws_signer в корзину или конечную точку, чтобы эта работа работала.
Есть идеи?