Używam Evaporate.js do przesyłania plików do S3. Miałem wszystko działa, dopóki nie zdecydowałem się włączyć szyfrowania po stronie serwera.Zły XMLHttpRequest podczas przesyłania do S3
Według dokumentów S3 można go włączyć, przekazując nagłówek. Więc aktualizowane mój code Dodaj wyglądać:
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!!!
}
)
pojawia się błąd: 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.
Dziwne, że mogę ustawić xAmzHeadersAtInitiate na '{'x-amz-acl': 'public-read'}' i działa dobrze. – Muhambi
Używasz Evaporate.js jako modułu w aplikacji nodejs lub używasz go ze skryptu w przeglądarce? Jeśli przeglądarka, której używasz? –