【发布时间】:2021-01-14 16:50:37
【问题描述】:
我尝试从 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>
在控制台中,我看到有关成功保存的消息:文件已成功下载。但这是不对的。
【问题讨论】:
-
您的代码中有
<script>标签,所以我假设您正在尝试从浏览器运行它?您的 S3 资源是否可公开访问? -
browserify-fs是 Node 的fs在 level.js 之上实现的,它是 indexeddb 的 leveldown 存储。您希望它将文件保存到您的计算机吗? -
-
是的,我期待它
-
如果我使用默认库,我会看到相同的结果。
标签: javascript amazon-web-services amazon-s3