0

s3にアップロードしようとするとこのエラーが発生します。私はawsの資格情報が正しいことを確認するためにチェックした。ここに私が得ているエラーがあります。carrierw/fogを使用してaws s3にアップロードするときに、このオブジェクトへのアクセスがすべて無効にされました

`` `

Excon::Errors:`:Forbidden: Expected(200) <=> Actual(403 Forbidden) 
excon.error.response 
    :body   => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AllAccessDisabled</Code><Message>All access to this object has been disabled</Message><RequestId></RequestId><HostId></HostId></Error>" 
    :cookies  => [ 
    ] 
    :headers  => { 
    "Connection"  => "close" 
    "Content-Type"  => "application/xml" 
    "Date"    => "Fri, 13 May 2016 22:14:48 GMT" 
    "Server"   => "AmazonS3" 
    "x-amz-id-2"  => "" 
    "x-amz-request-id" => "" 
    } 
    :host   => "s3.amazonaws.com" 
    :local_address => "10.0.0.24" 
    :local_port => 57133 
    :path   => "/uploads/script/file/1/Facebook-2006.jpg" 
    :port   => 443 
    :reason_phrase => "Forbidden" 
    :remote_ip  => "54.231.114.148" 
    :status  => 403 
    :status_line => "HTTP/1.1 403 Forbidden\r\n" 

` ``

そして、この私がcarrierwave /霧 設定/初期化/ carrierwave.rbに CarrierWave.configure do |config| config.fog_credentials = { provider: "AWS", aws_access_key_id: ENV["AWS_ACCESS_KEY_ID"], aws_secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"] } config.fog_directory = ENV["AWS_S3_BUCKET"] end

答えて

6

馬鹿動きます。私はバケット名の名前を間違って設定していました。 ENV ['S3_BUCKET_NAME']の代わりにENV ["AWS_S3_BUCKET"]を書きました。アクセスが拒否されたと思われるのは、s3のルートであるか存在しないバケットにアクセスしようとしていたためです。

+0

非常に簡単な間違いをして、あなたがそれを整理することができたことをうれしく思います。 – geemus

+0

私は同じような間違いを犯しました。私は存在しなかったバケットに名前を付けました... – phoenix

+0

haha​​ha良いことがこのエラーの問題です。私は間違ったバケット名の同じ間違いをした。メッセージはもっと有益なはずです。 –

0

の構成方法であるバケットは、パブリックアクセス権を持っています許可?フォギングの設定であなたのバケツのAWS領域を設定しようとすることができますか?

+0

私はすべてのアクションに対して 'everyone'に権限を与えてテストしましたが、それでも同じエラーが表示されます。私はバケツが米国標準の下にあり、運がないので、地域を米国東1に設定しようとしました。 –

+0

ああ私はばかだ。私は自分の環境変数に間違った名前を使用していました。私はENV ['BUCKET_NAME_S3']ではなくENV ['S3_BUCKET_NAME']と言っていました。助けてくれてありがとう! –

関連する問題