簡體   English   中英

從AWS S3正確下載文件如何使用JS

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM