我正在使用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应用程序中的模块,或者您是否使用了浏览器中的脚本?如果一个浏览器,你正在使用哪一个? –