Неправильный формат CSV на корзине s3 не дает данные отображаются правильно - PullRequest
0 голосов
/ 08 апреля 2020
const fs = require('fs');
const AWS = require('aws-sdk');
const s3 = new AWS.S3({
  accessKeyId: 'key',
  secretAccessKey: 'accesskey'
});

const fileName = 'atest.csv';

const uploadFile = () => {
  fs.readFile(fileName, (err, data) => {
     if (err) throw err;
     const params = {
         Bucket: 'mybucket1s-resized', // pass your bucket name
         Key: 'FlightReporttest.csv', // file will be saved as testBucket/contacts.csv
         ContentDisposition: 'attachment',
         Body: JSON.stringify(data, null, 2)
     };
     s3.upload(params, function(s3Err, data) {
         if (s3Err) throw s3Err
         console.log(`File uploaded successfully at ${data.Location}`)
     });
  });
};

uploadFile();

Он прекрасно загружается в корзину, но когда я загружаю этот CSV, я получаю другой формат `` [формат CSV при загрузке с s3] [1] [1]: https://i.stack.imgur.com/DF46l.png есть предложения? если я изменяю тело на что-то еще, оно выдает ошибку

         Body: stream
               ^

ReferenceError: поток не определен в fs.readFile (C: \ Users \ cloudone \ Desktop \ Work \ Projects info \ Pageman_Flight_Reports \ flightreportupload \ index. js: 17: 16) в FSReqWrap.readFileAfterClose [as oncomplete] (fs. js: 511: 3) `` `

1 Ответ

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

Вы не хотите JSON.stringify() файл CSV при загрузке. Если вы удалите это из своего кода, он будет загружен правильно, просто передайте data

Я также привел код чуть ниже

const AWS = require('aws-sdk')
const fs = require('fs')

const s3 = new AWS.S3({
    accessKeyId: 'key',
    secretAccessKey: 'accesskey',
})

const uploadFile = fileName => {
    const params = {
        Bucket: 'mybucket1s-resized',
        Key: 'FlightReporttest.csv',
        ContentDisposition: 'attachment',
        Body: fs.readFileSync(fileName),
    }

    return s3.upload(params).promise()
}

uploadFile('atest.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...