【问题标题】:Nodejs - React download file from s3 bucket using pre-signed urlNodejs - 使用预签名的 url 从 s3 存储桶反应下载文件
【发布时间】:2019-06-29 22:35:53
【问题描述】:

我正在尝试制作一个 onClick 按钮以使用预签名 URL 从 S3 存储桶下载文件。当我收到我的网址时,问题就来了。我想要一个自动重定向或类似的。换句话说,我怎样才能在取回我的签名网址后午餐下载文件?

this is my document list

onClick 事件在下载按钮上。

redux action

Redux 操作调用我的 nodejs 路由 api route nodejs

请求预签名的 url,然后将其发送到我的 redux reducer。

现在在我的前端页面中,我得到了我的链接,但我想要一个自动重定向来开始文件下载。 Part of Component

希望我的第一篇文章不要太乱。

【问题讨论】:

  • 请在您的描述中分享代码 sn-ps 而不是链接。欢迎来到 SO!

标签: node.js reactjs amazon-s3


【解决方案1】:

我通过 redux 操作解决了我的问题。只需单击一下,我就会调用我的操作,它会返回我的预签名 URL,然后自动单击链接。当我将原始文件名上传到 S3 时,此触发下载事件。

export const downDoc = (docId) => async dispatch => {
    
    const res = await axios({ url: 'myApiCall', method: 'GET', responseType: 'blob' })
    .then((response) => {
      console.log(response)
      const url = window.URL.createObjectURL(new Blob([response.data]));
      const link = document.createElement('a');
      link.href = url;
      link.setAttribute('download', `${docId.originalName}`);
      document.body.appendChild(link);
      link.click();
    });

【讨论】:

  • 嗯,在 React 应用程序中直接进行 DOM 操作听起来不是一个好主意
猜你喜欢
  • 2020-05-26
  • 2019-09-06
  • 2019-01-27
  • 1970-01-01
  • 2015-08-26
  • 2019-05-30
  • 1970-01-01
  • 1970-01-01
  • 2021-01-30
相关资源
最近更新 更多