В моем проекте мне нужно было написать код, который загружает файл CSV с S3 и преобразует его в формат JSON. Я просто делюсь тем, что сделал, и делаю краткие заметки для каждого API.

Окружающая среда

  • узел: 8.10.0
  • aws-sdk: 2.211.1
  • csvtojson: 2.0.8

Предполагаемые знания

  • Как получить / установить учетную информацию AWS
  • Как использовать и определить эти учетные данные в файле .env
require('dotenv').config();
const AWS = require('aws-sdk');
const csv = require('csvtojson');
const S3 = new AWS.S3();
const params = {
  Bucket: 'bucket name',
  Key: 'csv file name'
};
async function csvToJSON() {
  // get csv file and create stream
  const stream = S3.getObject(params).createReadStream();
  // convert csv file (stream) to JSON format data
  const json = await csv().fromStream(stream);
  console.log(json);
};
csvToJSON();

getObject (): получить объекты из S3.

Https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property

getObject (). createReadStream (): направляет объекты из S3 в объект потока Node.js.



csv (). fromStream (readableStream): преобразовать в JSON из CSV readableStream.



Заключение

Собственно, я не знал, что такое объект Stream в Node.js. Задача дала мне возможность задуматься над этим глубже. Кроме того, это мой первый пост на Medium. Я поделюсь своими мыслями, делами и опытом. Надеюсь, мой пост кому-то поможет. Спасибо.