Используя операторскую волну для наших загрузчиков, мы получаем пару ошибок Excon каждую неделю из нашего производственного приложения. Например:
Excon::Errors::BadRequest: Expected(200) <=> Actual(400 Bad Request) excon.error.response :body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>IncompleteBody</Code><Message>The request body terminated unexpectedly</Message>
Мы начали оборачивать процесс загрузки в блок повторной попытки, и кажется, что после очередной попытки он всегда работает нормально, но мне интересно, есть ли лучшее решение, так как через некоторое время это становится громоздким. Мне кажется, что эти ошибки должны обрабатываться на более низком уровне. Есть ли лучший способ справиться с этими проблемами?
Вот наша производственная конфигурация:
config.storage = :fog
config.root = Dir.tmpdir
config.cache_dir = 'carrierwave'
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'],
aws_secret_access_key: ENV['AWS_ACCESS_KEY'],
}
config.fog_directory = ENV['AWS_S3_BUCKET']
config.fog_public = false
config.fog_authenticated_url_expiration = 7.days.to_i
config.enable_processing = true
И мы используем версии gem:
fog (1.27.0)
carrierwave (0.10.0)
excon (0.43.0)
carrierwave-aws
этой проблемы больше не было. - person lobati   schedule 15.07.2015