0

リクエスト時刻と現在時刻の差が大きすぎるため、毎回このエラーが発生しました。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
4

2 に答える 2

2

S3 の応答は、リクエストの「Date」ヘッダーが 15 分以上間違っていたことを意味します。以下を確認する必要があります。

  1. システム時刻が正しく設定されている
  2. タイムゾーンが正しく設定されています

以下も参照してください。

于 2013-10-26T16:22:41.100 に答える