リクエスト時刻と現在時刻の差が大きすぎるため、毎回このエラーが発生しました。sync_clock オプションを適用する必要があることがわかりましたが、構成場所を設定できません。構成を参照して、クロックを同期するように構成するのを手伝ってください。
エラー :
Expected(200) <=> Actual(403 Forbidden)
request => {:headers=>{"Content-Length"=>54911, "Content-Type"=>"image/jpeg", "x-amz-acl"=>"public-read", "Cache-Control"=>"max-age=315576000", "Date"=>"Thu, 24 Oct 2013 01:14:14 +0000", "Authorization"=>"changed", "Host"=>"changed"}, :host=>"changed", :mock=>nil, :path=>"/uploads%2Fproject%2Fimage_1%2F697%2FHamburg-Speicher-im-Bau-090825.jpg", :port=>"443", :query=>nil, :scheme=>"https", :body=>#<File:/app/tmp/carrierwave/20131024-0114-2-7499/Hamburg-Speicher-im-Bau-090825.jpg>, :expects=>200, :idempotent=>true, :method=>"PUT"}
response => #<Excon::Response:0x0000000b72f0a0 @body="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>RequestTimeTooSkewed</Code><Message>The difference between the request time and the current time is too large.</Message><MaxAllowedSkewMilliseconds>900000</MaxAllowedSkewMilliseconds><RequestId>EA8E8FF76B54D7F3</RequestId><HostId>/RiS+pn3JcKzOoArMhFRYmSBRYwRAptugp8W32XAT4vupukmxMCtHRKIHy7wy9BL</HostId><RequestTime>Thu, 24 Oct 2013 01:14:14 +0000</RequestTime><ServerTime>2013-10-24T01:29:49Z</ServerTime></Error>", @headers={"x-amz-request-id"=>"EA8E8FF76B54D7F3", "x-amz-id-2"=>"/RiS+pn3JcKzOoArMhFRYmSBRYwRAptugp8W32XAT4vupukmxMCtHRKIHy7wy9BL", "Content-Type"=>"application/xml", "Transfer-Encoding"=>"chunked", "Date"=>"Thu, 24 Oct 2013 01:29:47 GMT", "Connection"=>"close", "Server"=>"AmazonS3"}, @status=403>
vendor/bundle/ruby/1.9.1/gems/excon-0.6.6/lib/excon/connection.rb:190:in `request'
初期化子
CarrierWave.configure do |config|
if Rails.env.production?
config.fog_directory = 'ese-prod'
config.fog_host = 'https://s3.amazonaws.com/ese-prod'
else
config.fog_directory = 'ese-dev'
config.fog_host = 'https://s3.amazonaws.com/ese-dev'
end
if Rails.env.production? || Rails.env.development?
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => 'AAAAAAAAAAA',
:aws_secret_access_key => 'BBBBBBBBBBBB',
:region => 'us-east-1'
}
config.fog_public = true
config.fog_attributes = {'Cache-Control' => 'max-age=315576000'}
config.root = Rails.root.join('tmp') # adding these...
config.cache_dir = 'carrierwave' # ...two lines
# elsif Rails.env.development?
# config.storage = :file
else
config.storage = :file
end
end
アップローダー
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
if Rails.env.production? || Rails.env.development?
storage :fog
else
storage :file
end
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
version :thumb do
process :resize_to_limit => [50, 50]
end
version :partner do
process :resize_to_limit => [150, 150]
end
def extension_white_list
%w(jpg jpeg gif png)
end
end