アップローダに Carrierwave を使用すると、実稼働アプリから毎週いくつかの 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)