首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >S3 CORS上传在传递选项后中止

S3 CORS上传在传递选项后中止
EN

Stack Overflow用户
提问于 2013-02-19 03:06:26
回答 1查看 216关注 0票数 0

我试图从我的浏览器上传一个文件,但它根本不起作用。

我的存储桶CORS配置为:

代码语言:javascript
复制
<?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>

在我的代码中,我发送了以下内容:

代码语言:javascript
复制
xhr.open('PUT', "http://upload.test.s3.amazonaws.com/" + uploadFile.get("dest") +'?' +   "partNumber=" + (part + 1) +  "&" + "uploadId=" + uploadFile.get("uploadId"), true);
xhr.setRequestHeader("Authorization", uploadFile.get("authorization"));
xhr.setRequestHeader("x-amz-date", uploadFile.get("date"));
xhr.setRequestHeader("Content-Type", uploadFile.get("rawFile").type);
xhr.setRequestHeader("x-amz-acl", "public-read");
xhr.send(chunk);

Ps: uploadFile有一些属性,比如来自服务器的授权密钥和uploadId。

当上传开始时,我通过了OPTIONS请求,但Put请求在几秒钟后中止(通常是在发送一定百分比的内容后4-5秒)。不幸的是,它在没有反馈的情况下中止了。有人知道会发生什么吗?

谢谢!

编辑:基本上我使用https://github.com/LearnBoost/knox从分块上传中获取UploadId (如果我在整个上传操作中使用服务器,它是有效的)

EN

回答 1

Stack Overflow用户

发布于 2013-12-02 06:38:23

看起来服务器不能使用通配符(即"*"),如果你使用CORS授权:检查this

您是否尝试过在存储桶的AllowedOrigin报头中指定请求域?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14943561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档