【问题标题】:403 error when using fineUploader to upload directly to S3 with no server side code使用 FineUploader 直接上传到 S3 没有服务器端代码时出现 403 错误
【发布时间】:2015-10-07 19:52:25
【问题描述】:

我按照本教程 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 切换到“处理”,然后我收到“拒绝访问”消息并且没有文件在桶里。控制台打印:

加载资源失败:服务器响应状态为 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

【问题讨论】:

  • 哪个请求失败了?
  • @RayNicholus 详细信息已添加到问题中

标签: amazon-s3 fine-uploader


【解决方案1】:

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

arn:was:s3:::bucketName

需要是

arn:was:s3:::bucketName/*

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

【讨论】:

    猜你喜欢
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多