2014-01-16 71 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"));

對不起復活舊線程