Не удается заставить Carrierwave работать с Amazon S3

Я пытаюсь использовать Amazon S3 с Carrierwave. Это первый раз, когда я использую S3, поэтому я не уверен, что делаю большую часть времени. Я использую Carrierwave с Fog и загружаю файлы (только изображения) через ActiveAdmin, но при попытке загрузить что-либо получаю сообщение об ошибке «сломанная труба».

Это полная трассировка ошибки.

Я настроил Carrierwave с этой конфигурацией в инициализаторе:

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider                         => 'AWS',
    :aws_access_key_id                => 'myid',
    :aws_secret_access_key            => 'mysecretkey',
  }
  config.fog_directory = 'bucketname'
  config.s3_region = 'EU'
end

И я изменил это в своем классе загрузчика:

#storage :file
storage :fog

Я использую Рельсы 3.1

Может ли кто-нибудь дать мне понять, что не так? Я просматривал открытые выпуски Carrierwave и Fog и ничего не нашел.

ВАЖНОЕ РЕДАКТИРОВАНИЕ: я только что попытался загрузить очень маленькое изображение, и это сработало, но по какой-то причине> 100 КБ выдает ошибку «сломанная труба».


person agente_secreto    schedule 14.03.2012    source источник


Ответы (2)


s3_region должен быть 'eu-west-1'.

person shuriu    schedule 14.03.2012
comment
У меня это было изначально, и это не сработало... Я проверил документы Amazon, и там Ирландия указана как ЕС: docs.amazonwebservices.com/general/latest/gr/rande.html - person agente_secreto; 14.03.2012
comment
Я отредактировал свой пост: конфигурация работает (с EU, я думаю, они используют оба псевдонима), но она не работает со всем, что превышает 100 КБ или что-то в этом роде. - person agente_secreto; 15.03.2012

В моем случае «Сломанная труба» была вызвана ошибкой RequestTimeTooSkewed. Здесь это объясняется на сайте AWS: http://www.bucketexplorer.com/documentation/amazon-s3--difference-between-requesttime-currenttime-too-large.html.

Итак, поскольку местоположение корзины S3 по умолчанию — us-east-1, а я нахожусь на западе, мне пришлось изменить «Регион» корзины на Орегон или us-west, и это сработало!

person sfkaos    schedule 14.01.2013