[英]How right download file from AWS S3 use JS
我嘗試從 AWS S3 下載文件,這個文件下載成功,但它沒有保存在我的磁盤中,而且我沒有收到任何錯誤。
<script>
import AWS from 'aws-sdk';
import FS from 'browserify-fs';
export default {
computed: {
s3Client() {
// Enter copied or downloaded access ID and secret key here
const ID = 'RANDOM_ID';
const SECRET = 'RANDOM_SECRET';
return new AWS.S3({
accessKeyId: ID,
secretAccessKey: SECRET
})
}
},
methods: {
downloadFile() {
const BUCKET_NAME = 'js-bucket'
const FILE_NAME = 'test.epub'
const params = {
Key: FILE_NAME,
Bucket: BUCKET_NAME
}
console.info("Try to download file : " + FILE_NAME + " from bucket: " + BUCKET_NAME)
this.isDownloading = true
this.s3Client.getObject(params)
.promise()
.then(data => {
FS.writeFile(FILE_NAME, data.Body, function (err) {
if (err) {
console.log(err.code, "-", err.message);
}
})
console.log('File downloaded successfully')
})
.catch(err => console.error(err))
}
}
}
</script>
在控制台中,我看到關於成功保存的消息:文件已成功下載。 但這是不對的。
我自己決定的:
.promise()
.then(data => {
const blob = new Blob([data])
const link = document.createElement('a')
link.href = URL.createObjectURL(blob)
link.download = FILE_NAME
link.click()
URL.revokeObjectURL(link.href)
console.log('File downloaded successfully')
})
它有效,但如果有人知道如何做得更好,請回答。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.