2014-01-16 42 views
1

我正在开发一个新网站,用户可以将文件上传到Amazon S3存储桶。在评估jQuery的不同上传库之后,我最终选择了Dropzone JS。如何使用Dropzone JS获取Amazon S3响应标题?

我能够将Dropzone集成到我的应用程序中,以便将文件直接上传到Amazon S3存储桶。一切工作正常与上传。

但是我有麻烦阅读从亚马逊使用jQuery的响应。特别是,我想获得来自Amazon的回应的位置标题。此位置标题包含处理上传文件所需的信息,但我无法使用Dropzone获取它。任何人都可以建议如何获取XHR响应头文件?检查代码我不认为这是可能的,似乎我们只能得到响应文本而不是标题。

回答

2

请参阅How to get read data from response header in jquery/javascript获取响应信息。

假设你正在使用AWS POST操作http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html

我怀疑它返回的URI是一个与亚马逊的域:https://s3.amazonaws.com/Bucket/Object

,如果你使用的是“网络”斗想用你自定义域名你将不得不为自己弄清楚。由于您在通话中提供了该名称,因此您已经有了该名称。

另一个折痕可能是上传后文件的权限。请务必在适当的上传路径上设置策略。

0

根据dropzone的创建者,XHR对象作为file.xhr存储在文件本身中。所以如果你想访问它的参数,你必须做console.log(file.xhr."what you want to access")

我建议你console.log(file.xhr)首先看到它的内容。它会给你一个可用值的概念。

但是,响应头文件为"unsafe",除了您将CORS策略添加到标记为安全的存储桶之外,无法查看。

所以,如果你想访问例如Location头,你需要

<ExposeHeader>location</ExposeHeader>

添加到您的CORS政策。 那么你现在可以访问它像这样

console.log(file.xhr.getResponseHeader("Location"));

对不起复活旧线程