Реагировать JS: загрузить CSV-файл в Amazon S3 с использованием AWS учетных данных - PullRequest
0 голосов
/ 02 апреля 2020

Я хочу загрузить CSV-файл, используя S3 Uploader. У меня есть также 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 ]

0 голосов
/ 02 апреля 2020

Как уже упоминал Раду Дикэ во втором варианте, используйте для этого AWS Cognito. Не нужно настраивать свой собственный сервер + API.

Кроме того, Amplify помогает вам при разработке с React + AWS.

Вот хороший пример для вашего сценария: https://serverless-stack.com/chapters/create-a-login-page.html

0 голосов
/ 02 апреля 2020

Вы не передаете учетные данные react-s3-uploader напрямую. Это может быть ОГРОМНАЯ проблема безопасности.

У вас есть как минимум 2 способа справиться с этим:

  • использовать предопределенные URL . Это способ предоставления доступа к элементу S3 для загрузки элементов без учетных данных (учетные данные на самом деле находятся в URL). Вам понадобится сервер для этого. Это также способ, которым react-s3-uploader рекомендует сделать это
  • использовать AWS Пул идентификаторов Cognito для пользователей, не являющихся пользователями.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...