我正在使用HTML3 CORS文件上传器上的Amazon S3。 它运作良好,但我仍然有一件非常奇怪的事情正在发生。

PUT请求发送文件之前,浏览器始终发送OPTIONS请求,该请求失败并显示403 FORBIDDEN错误代码。

但文件正确传输到S3所以发生了什么?

请注意,我试图通过启用所有HTTP方法来解决我的问题,但它没有工作..

以下是我用于PUT请求的标头:

AWSAccessKeyId:XXXXXXXXXXXXXXXXXXXXXX
Expires:1347882643
Signature:YYYYYYYYYYYYYYYYYYYYY

还有一些代码:

var xhr = new XMLHttpRequest();
// bind the event listener
xhr.upload.addEventListener("progress", progress_listener, false);
// open the XMLHttpRequest 
xhr.open('PUT', signed_url, true);

// when the upload is completed call the callback function if supplied
xhr.onload = function(e) {
    if(typeof callback == "function") {
        callback(this.status == 200, file.name, file_id);
        confirm_upload_success(file_id);
    }
};

// start sending
xhr.send(file);  

谢谢你的帮助

#1楼 票数:4 已采纳

编辑:此错误已由亚马逊修复:-)

Carl @ AWS / Sep 28,2012 2:56 PM:

所有,

现在应修复此错误,并使用预先签名的URL与CORS成功。

谢谢,


您描述的问题是亚马逊错误:事实证明,S3当前正在验证在CORS的“预检”中进行的OPTION调用,并且失败(可能是因为已经为PUT请求签署了auth而不是OPTION请求) 。

正如您在此处所看到的,它已经在他们的雷达上: CORS与公共数据一起使用,但无法使用预先签名的请求

Carl @ AWS / Sep 5,2012 1:00 PM:

感谢您和其他所有人的报告。 您是正确的预签名请求在初始OPTIONS请求上返回错误。 我们正在解决此问题,并希望尽快添加此支持。 我没有关于更改可用性的时间表,但是当我有这个时,我会用更多信息更新这个帖子。 如果您有任何后续问题,请告诉我。

所以请忽略它,他们会解决它。

  ask by Olivier Kaisin translate from so

未解决问题?本站智能推荐:

5回复

使用Javascript或Jquery在S3上保存数据

我想收集用户在浏览器中输入的数据并保存到Amazon S3。 这是我可以用Javascript / Jquery做的事吗?
1回复

从SDK重定向到S3存储桶

我有几个函数可以在S3上创建2个存储桶,其中一个用于example.com,另一个用于www.example.com。 我需要知道我应该使用什么来启用第二个存储桶,以便它将重定向到第一个存储桶。 如何在后端设置的示例 我的问题是我需要能够使用SDK执行此操作。 谢谢,
1回复

流星S3下载

我设法使用edgee:slingshot进行上传,但是目前在如何下载方面迷失了方向。 我希望用户能够下载附件。 我尝试使用: <a download href="s3url.com"></a> 但它仅适用于在浏览器中可见的pdf和图像,但是我在下载doc文件和
1回复

从S3存储桶上的文件夹中删除文件

在对Amazon S3进行了大量调查之后,我了解到清空S3存储桶是可行的。 我有一个要求,我只想从S3存储桶中删除选定的文件夹。 而不是一次删除所有文件夹或从S3存储桶中删除单个文件夹。 希望我对AWS的理解是正确的。 我想有实现此目的的选择。 请让我知道javascript是否有解决
2回复

S3API策略条件限制文件类型/扩展名

我在这里阅读文档,但看不到如何添加条件以将上传限制为扩展名/ mime类型的某些白名单。 即:我只允许人们上传扩展名为“ xls”,“ xlsx”,“ ppt”,“ pptx”,“ doc”,“ docx”,“ txt”,“ csv”的文件 这可能吗? PS:我正在使用jquery-
2回复

在s3aws中为对象创建签名的url时如何设置内容类型?

我想用自定义内容类型创建一个签名的URL,我正在尝试这样做: 但这给出了错误: 我觉得很奇怪,因为有关签名的文档在这里请求: http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html 指出签名是通
1回复

使用PHP和Javascript的AmazonS3多图像上传

好吧....所以寻找了几天之后,我被正式困住了。 我的问题似乎很简单,但是每当我认为自己在正确的轨道上时,我都会停下来。 我有一个简单的html表单,可供用户上传一些图片。 我需要使用不支持通过POST上传多文件的Amazon S3存储这些文件。 有什么办法可以解决此限制? 也许是P
5回复

如何使用Javascript删除AWSS3上的对象?

我想使用 Javascript 从 Amazon S3 中删除文件。 我已经使用 Javascript 上传了文件。 有任何想法吗?