Usage
Display an encrypted file
getDecryptedContent(fileUrl, key, iv, authTag, 'text/plain')
.then(decryptedText => {
document.getElementById('my-paragraph').innerText = decryptedText;
});
getDecryptedContent(url, key, iv, authTag, 'image/jpeg')
.then(imageSrc => {
document.getElementById('my-img').src = imageSrc;
});
Download an encrypted file
downloadEncryptedFile(
`https://s3-us-west-2.amazonaws.com/bencmbrook/africa.topo.json.enc`,
key,
iv,
authTag,
{
fileName: 'myFile.json',
progressEventName: 'download-progress'
}
);
Download Progress Event Emitter
You can listen to a download progress event. The event type is the same as the url
parameter
window.addEventListener(url, e => {
console.log(`${e.detail}% done`);
});
Note: this feature requires the Content-Length
response header to be exposed. This works by adding Access-Control-Expose-Headers: Content-Length
to the response header (read more here and here)
On Amazon S3, this means adding the following line to your bucket policy, inside the <CORSRule>
block:
<ExposeHeader>Content-Length</ExposeHeader>