首页 > 解决方案 > 如何将镶木地板文件上传到 nodejs 中的 s3 存储桶?

问题描述

我正在使用 parquetjs 库。它允许我创建镶木地板文件,并将其保存在本地,但我想在创建后将其直接发送到 s3 存储桶。在线示例并没有真正帮助。我将我正在使用的代码放在下面。

const parquet = require('parquetjs');

const parquetSchema = new parquet.ParquetSchema({
  name: { type: 'UTF8' },
  age: { type: 'INT64' }
});

var writer = await parquet.ParquetWriter.openFile(parquetSchema, 'fruits.parquet');

  rows.forEach(async (entry, i) => {
    // append a few rows to the file
    await writer.appendRow({
      name: entry.name,
      age: entry.age
    });
  });

  await writer.close();

关闭代码后,它保存在文件夹中。我正在尝试使用s3.putObjectAWS SDK 的常规功能,但对于镶木地板文件它不起作用。它正在上传一个名为的空镶木地板文件。我尝试通过fs模块提取本地文件,并将其作为正文附加,但这也不起作用。

标签: node.jsamazon-s3parquetaws-sdk-jsparquetjs

解决方案


var fileStream = fs.createReadStream("F:/directory/fileName.ext");
var putParams = {
    Bucket: s3bucket,
    Key: s3key,
    Body: fileStream
};
s3.putObject(putParams, function(putErr, putData){
    if(putErr){
        console.error(putErr);
    } else {
        console.log(putData);
    }
});

这行代码终于帮到了我。不必将其转换为任何格式。


推荐阅读