node.js - 如何将镶木地板文件上传到 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.putObject
AWS SDK 的常规功能,但对于镶木地板文件它不起作用。它正在上传一个名为的空镶木地板文件。我尝试通过fs
模块提取本地文件,并将其作为正文附加,但这也不起作用。
解决方案
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);
}
});
这行代码终于帮到了我。不必将其转换为任何格式。
推荐阅读
- html - 为什么我的 CSS 只能在 546px 之外工作(使 div 居中),即使媒体查询被编程为处理这个问题?
- shell - 多个管道使文本流中的输出为空白
- javascript - 使用 JavaScript 创建弹出窗口
- javascript - 如何将选项标签内的标签文本居中对齐?
- c# - 如何正确提取以相同数字开头和结尾的数字
- python - 类型错误:flag1() 缺少 1 个必需的位置参数:'y'
- api - 使用 REST api 实现原子性
- sorting - 即使在选择后如何在数据验证中以升序显示数字?
- swift - 是否可以在 swift 4 中访问该函数之外的函数中创建的变量
- azure - Azure AD Log Analytics 需要资源提供程序 microsoft.insights