我想將圖像上傳到s3。爲此,我正在關注http://railscasts.com/episodes/383-uploading-to-amazon-s3使用jQuery文件上傳到s3 rails應用時獲取403(禁止)
我可以將單張圖片上傳到s3,但現在我正在使用jquery文件上傳來上傳多個文件。
當我試圖上傳文件時,它給了我403(禁止)。
我需要做些什麼來解決它?
謝謝任何能夠提前幫助的人!
我想將圖像上傳到s3。爲此,我正在關注http://railscasts.com/episodes/383-uploading-to-amazon-s3使用jQuery文件上傳到s3 rails應用時獲取403(禁止)
我可以將單張圖片上傳到s3,但現在我正在使用jquery文件上傳來上傳多個文件。
當我試圖上傳文件時,它給了我403(禁止)。
我需要做些什麼來解決它?
謝謝任何能夠提前幫助的人!
您需要檢查您的S3存儲桶的權限。它應該允許「上傳/刪除」。
此外,你應該建立CORS配置(CORS:跨來源資源共享) (你的水桶,去屬性==>權限,然後單擊「添加CORS配置」)
的文件應該是這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://localhost:3000</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
在這裏,它允許我的本地主機發布文件到這個存儲桶。
當你測試你可以使用非常廣泛CORS配置
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
除了CORS,403能來,因爲錯誤的contentType設置。
服務器端:
GeneratePresignedUrlRequest rq = new GeneratePresignedUrlRequest(bucketName, objectKey);
rq.setContentType("video/*");
...
客戶端:
$.ajax({
url:upUrl,
type: "PUT",
data: file,
contentType:'video/*',
cache: false,
processData:false,
success: function (data) {
}
});
https://github.com/pjambet/direct-upload - >從這個鏈接你可以直接上傳在S3它的小項目你可以克隆 –