2012-11-03 3 views
0

JQuery와 파일 업로드 실패,이 튜토리얼을 따라하려고 노력 정규 html 양식을 통해 파일. 하지만 내가 JQuery 파일 업로드 플러그인으로 같은 양식을 게시하면 Amazon에서 403을 얻는다. 여기 아마존 S3 CORS POST는 내가 HTML 업 로더를 통해 S3에 파일을 업로드하기 위해 노력하고있어

내 형태 :

<form accept-charset="UTF-8" action="https://youboox_dev.s3.amazonaws.com" enctype="multipart/form-data" class='direct-upload' method="POST"> 
<input type="hidden" name="key" value="test-file-name"> 
<input type="hidden" name="AWSAccessKeyId" value="AKIZ[...]YSCA"> 
<input type="hidden" name="acl" value="private"> 
<input type="hidden" name="success_action_status" value="201"> 
<input type="hidden" name="policy" value="<%= Facades::AmazonFacade.policy %>"> 
<input type="hidden" name="signature" value="<%= Facades::AmazonFacade.signature %>"> 

<input type="file" name="file"> 

<input type="submit" value="Load this file"> 

그리고 여기 내 JQuery와 - 업 로더입니다 :

옵션 https://youboox_dev.s3.amazonaws.com/ 200 (OK) : 나는 아마존에서이 답변을 얻을

$('.direct-upload').fileupload({ 
     url: $(this).attr('action'), 
     type: 'POST', 
     autoUpload: true, 
     dataType: 'xml', 
     add: function (event, data) { 
     jqXHR = data.submit(); 
     } 


POST https://youboox_dev.s3.amazonaws.com/ 403 (금지됨)

============================================= ===========

난 그냥 제출 버튼을 통해이 양식을 제출하면, 내가 아마존과 수 '메신저에서 확인 응답을 얻을 수 있기 때문에 내 정책 및 서명이 올바른지 확신 방금 업로드 한 파일을 다운로드하십시오.

<PostResponse> 
    <Location>https://youboox_dev.s3.amazonaws.com/tottotoCVBNBV</Location> 
    <Bucket>youboox_dev</Bucket> 
    <Key>test-file-name</Key> 
    <ETag>"d41d8cd98f00b204e9800998ecf8427e"</ETag> 
</PostResponse> 

답변

0

비슷한 옵션이 있습니다. 무엇 나를 위해 그것을 해결하는 것은 버킷 정책을 추가했다 : (. 난 그냥 설정했다 그래서이 부분이 actaully 필요로하는 모르는 또 다른 버킷 사람에서 맹목적이 복사하는 인정)

{ 
"Version": "2008-10-17", 
"Id": "Policy1347277692345", 
"Statement": [ 
    { 
     "Sid": "my-user", 
     "Effect": "Allow", 
     "Principal": { 
      "AWS": "arn:aws:iam::123456789:user/my-user" 
     }, 
     "Action": [ 
      "s3:AbortMultipartUpload", 
      "s3:GetObjectAcl", 
      "s3:GetObjectVersion", 
      "s3:DeleteObject", 
      "s3:DeleteObjectVersion", 
      "s3:GetObject", 
      "s3:PutObjectAcl", 
      "s3:PutObjectVersionAcl", 
      "s3:ListMultipartUploadParts", 
      "s3:PutObject", 
      "s3:GetObjectVersionAcl" 
     ], 
     "Resource": "arn:aws:s3:::my-bucket/*" 
    }, 
    { 
     "Sid": "world-readable", 
     "Effect": "Allow", 
     "Principal": { 
      "AWS": "*" 
     }, 
     "Action": "s3:GetObject", 
     "Resource": "arn:aws:s3:::my-bucket/*" 
    } 
] 
} 

관련 문제