使用fineUploader直接上传到没有服务器端代码的S3时出现403错误

时间:2015-10-06 20:32:19

标签: amazon-s3 fine-uploader

我遵循了这个教程http://blog.fineuploader.com/2014/01/15/uploads-without-any-server-code/并且取得了很好的进展,但我再次难过。

这是我的存储桶的CORS策略(我假设这是错误所在的位置):

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>https://www.xxxdomainxxx.fr</AllowedOrigin>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>DELETE</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <ExposeHeader>ETag</ExposeHeader>
    <AllowedHeader>content-type</AllowedHeader>
    <AllowedHeader>origin</AllowedHeader>
    <AllowedHeader>x-amz-acl</AllowedHeader>
    <AllowedHeader>x-amz-meta-qqfilename</AllowedHeader>
    <AllowedHeader>x-amz-date</AllowedHeader>
    <AllowedHeader>authorization</AllowedHeader>
    <AllowedHeader>x-amz-security-token</AllowedHeader>
</CORSRule>
</CORSConfiguration>

上传顺利(我看到进度条)并且它会遍历整个文件,但在上传结束时,UI会切换到&#34;处理&#34;然后我得到一个&#34;访问被拒绝&#34;消息,桶中没有文件。控制台打印:

  

无法加载资源:服务器响应状态为403(禁止)(xxxxxxx.s3.amazonaws.com,第0行)

我从AWS收到403错误,我不确定如何调试此错误。看到什么遗失?

感谢您的任何指示。

更新1

我想我会尝试使用CORS文件的哑巴版本来开始

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

但是我得到了同样的错误。 这是失败的POST请求:

key test test/c8491b98-284a-4d5d-90d4-f6ec7151bc1d.diff
AWSAccessKeyId  XXXXXXXXXXX
success_action_status   200
x-amz-security-token    XXXXXXXX
acl public-read
x-amz-meta-qqfilename   opentok.diff
policy  XXXXXX
signature   XXXXXXX
file    opentok.diff

响应

HTTP/1.1 403 Forbidden
Access-Control-Allow-Origin *
Access-Control-Allow-Methods    GET, POST, PUT
Access-Control-Max-Age  3000
Vary    Origin, Access-Control-Request-Headers, Access-Control-Request-Method
x-amz-request-id    8B619A5A96A954F6
x-amz-id-2  ZUPdtFRIdSKDK0ealKUKUCtHDW3GkNU5ZVZPDxlXPi/9J2oZiNcV3TltougJuhXnzY/BlbZrc1c=
Content-Type    application/xml
Transfer-Encoding   chunked
Date    Wed, 07 Oct 2015 08:11:24 GMT
Server  AmazonS3

1 个答案:

答案 0 :(得分:0)

问题不在于CORS配置,而在于用于存储桶的策略。资源字符串是

arn:was:s3:::bucketName

并且需要

arn:was:s3:::bucketName/*

魔鬼像往常一样在细节中......