我正在使用Evaporate.js上傳文件到S3。我已經使所有的工作,直到我決定啓用服務器端加密。上傳到S3時出現XMLHttpRequest錯誤
根據S3文檔,您可以通過傳遞標題來啓用它。所以,我更新了我的代碼添加到看起來像:
var promise = _e_.add({
name: name,
file: files[i],
started: callback_methods.started,
complete: callback_methods.complete,
cancelled: callback_methods.cancelled,
progress: callback_methods.progress,
error: callback_methods.error,
warn: callback_methods.warn,
paused: callback_methods.paused,
pausing: callback_methods.pausing,
resumed: callback_methods.resumed,
nameChanged: callback_methods.nameChanged,
xAmzHeadersAtInitiate: { 'x-amz-server-side-encryption': 'AES256'} // THIS IS THE ONLY LINE THAT CHANGED!!!
}
)
我得到的錯誤:DOMException: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': 'AWS4-HMAC-SHA256 Credential=XXXXXXXXXXXXXXX/XXXXXXX/us-east-1/s3/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-amz-server-side-encryption, Signature=XXXXXXXXXXXXXXXXXXXXX' is not a valid HTTP header field value.
奇怪的是我可以設置xAmzHeadersAtInitiate爲'{ 'X-AMZ-ACL': '公衆閱讀的'}',它工作正常。 – Muhambi
您是否將Evaporate.js用作nodejs應用程序中的模塊,或者您是否使用了瀏覽器中的腳本?如果一個瀏覽器,你正在使用哪一個? –