React JS:使用 AWS 凭证将 CSV 文件上传到 Amazon S3

IT技术 javascript reactjs amazon-web-services amazon-s3 file-upload
2021-05-04 07:37:12

我想使用 react S3 Uploader 上传 CSV 文件。我也有 AWS 凭证。但是我不知道如何在 React JS 中使用它。

下面是我使用过的代码。

import React, { PureComponent } from "react";
import ReactS3Uploader from "react-s3-uploader";


 saveUploaderReference = uploader => {
    if (uploader) {
      this.uploaderReference = uploader;
    }
  };
  
  
  getSignedUrl = (file) => {
     console.log("File : " , file)
  };

  


<ReactS3Uploader
            ref={this.saveUploaderReference}
            getSignedUrl={this.getSignedUrl}
            s3path="temp/"
            uploadRequestHeaders={{}}
            contentDisposition="auto"
            scrubFilename={filename => this.filename}
            autoUpload={true}
            multiple={false}
          />

我不知道在哪里使用 AWS 凭证。

我有 accessKeyID 和 secretAccessID。我不知道在哪里使用它。

任何帮助都会很棒。

谢谢。

2个回答

您不会react-s3-uploader直接将凭据传递给这将是一个巨大的安全问题。

您至少有两种处理方法:

  • 使用预先签名的网址这是一种无需凭据即可访问 S3 项目以上传项目的方法(凭据实际上在 url 中)。您需要一个后端来执行此操作。这也是react-s3-uploader建议这样做的方式
  • 为未授权用户使用AWS Cognito 身份池

正如 Radu Diță 已经在第二个选项中提到的那样,为此使用 AWS Cognito。无需设置自己的后端服务器 + API。

此外,当您使用 React + AWS 进行开发时,Amplify 可为您提供帮助。

这是您的场景的一个很好的例子:https : //serverless-stack.com/chapters/create-a-login-page.html