Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import React from 'react';
- import PropTypes from 'prop-types';
- import Dropzone from 'react-dropzone';
- import axios from 'axios';
- import aws from 'aws-sdk';
- import { withStyles } from 'material-ui';
- import dashboardStyle from 'assets/jss/material-dashboard-react/dashboardStyle';
- class Dashboard extends React.Component {
- state = {
- value: 0
- };
- uploadFile = files => {
- const file = files[0];
- aws.config.update({
- accessKeyId: process.env.REACT_APP_ACCESS_KEY_ID,
- secretAccessKey: process.env.REACT_APP_SECRET_ACCESS_KEY
- });
- const s3 = new aws.S3();
- const params = {
- Bucket: process.env.REACT_APP_BUCKET_NAME_FILE_CSV,
- Key: file.name,
- Expires: 60,
- ContentType: file.type
- };
- s3.getSignedUrl('putObject', params, function(err, signUrl) {
- if (err) {
- console.log('ERROR BRO : ', err);
- return err;
- } else {
- console.log('URL : ', signUrl);
- const instance = axios.create();
- instance
- .put(signUrl, file, { headers: { 'Content-Type': file.type } })
- .then(res => console.log('RESULT: ', res))
- .catch(err => console.log('ERROR: ', err));
- return signUrl;
- }
- });
- };
- render() {
- return (
- <div>
- <form>
- Upload data kantin
- <Dropzone onDrop={this.uploadFile.bind(this)} />
- </form>
- </div>
- );
- }
- }
- Dashboard.propTypes = {
- classes: PropTypes.object.isRequired
- };
- export default withStyles(dashboardStyle)(Dashboard);
Advertisement
Add Comment
Please, Sign In to add comment