2014-12-14 4 views
1

Carrierwave를 사용하여 이미지를 Amazon S3에 업로드하여 사용자에게 아바타를 업로드 할 수있는 기회를 제공하려고합니다.Excon :: Errors :: UsersController # update에서 금지됨

나는 이미지 파일을 추가하고 나는 다음과 같은 오류 메시지가 얻을 "업데이트"를 클릭하면 :

Excon::Errors::Forbidden in UsersController#update 
Expected(200) <=> Actual(403 Forbidden) excon.error.response :body => "<?xml version=\"1.0\"  encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied</Message> <RequestId>67D635476E2363B7</RequestId> <HostId>Aw9W8C1ShJt73UGE6IuRZAOK6UkWM46hy+noygWCZAR2Has1lrCDpZkcgX2+7y7b</HostId></Error>" :headers  => { "Connection" => "close" "Content-Type" => "application/xml" "Date" => "Sun, 14 Dec 2014 21:21:35  GMT" "Server" => "AmazonS3" "x-amz-id-2" =>  "Aw9W8C1ShJt73UGE6IuRZAOK6UkWM46hy+noygWCZAR2Has1lrCDpZkcgX2+7y7b" "x-amz-request-id" =>  "67D635476E2363B7" } :local_address => "192.168.195.234" :local_port => 56281 :reason_phrase =>  "Forbidden" :remote_ip => "54.231.64.217" :status => 403 

내 UsersController 번호 업데이트는 다음과 같습니다

def update 
    if current_user.update_attributes(user_params) 
    flash[:notice] = "User information updated" 
    redirect_to edit_user_registration_path 
else 
    flash[:notice] = "Invalid User information" 
    redirect_to edit_user_registration_path 
end 
end 

    private 

    def user_params 
    params.require(:user).permit(:name, :avatar) 
    end 

아바타를 업데이트하는 나의 형태는 :

.form-group 
     = f.label :name 
     = f.text_field :name, class: 'form-control', placeholder: 'Enter name', autofocus: true 
    - if current_user.avatar? 
     .form-group 
     %p Current avatar 
     = image-tag(current_user.avatar.profile.url) 
    .form-group 
     = f.label :avatar 
     = f.file_field :avatar 
     = f.hidden_field :avatar_cache 

    .form-group 
     = f.submit 'Update', class: 'btn btn-success' 

나는 비슷한 질문을 StackOverflow에서 발견했고 그 대답은 reg와 관련이있다. 양동이에 대해 선택된 이온; 그러나 S3는 더 이상 지역을 필요로하지 않습니다. . .

나는 Excon에 익숙하지 않아 내가받는 오류 메시지를 이해할 수 없다.

누구에게 의견이 있습니까?

감사합니다. 다른 사람이 문제로 실행 그냥 경우

답변

2

, 여기가 날 위해 일을하는 방법은 다음과 같습니다

나는 아마존 S3에 IAM 사용자를 사용하고

, 누구의 접근 및 비밀 키 I이 사용했던 사용자 앱에 권한이 없습니다. 죄송합니다. . .

그래서 파워 유저 권한과 관리 권한을 부여했으며 아바타가 제대로로드되었습니다!

2

Amazon AWS 관리 콘솔 >> 사용자 >> IAM 사용자 선택 >> 정책 첨부 >> AmazonS3FullAccess