【发布时间】:2020-01-15 12:47:09
【问题描述】:
我有一个脚本,它可以调用 RESTful API 并以块的形式从报告中检索 CSV 数据。我能够在控制台中连接、解析和显示这些数据。我还可以将此 CSV 数据写入本地文件并存储。
我想弄清楚的是如何在将这些数据上传到 GCS 之前跳过创建文件来存储这些数据,而是直接将其传输到 Google Cloud Storage 以另存为文件。由于我正在尝试使其成为无服务器云功能,因此我尝试将其直接从内存流式传输到 Google Cloud Storage 文件中。
我在 google 上找到了这个 'Streaming Transfers' 文档,但它只引用了使用“gsutil”执行此操作,我正在努力寻找有关如何使用 node.js 执行此操作的任何示例或文档。我还尝试在堆栈溢出时关注此answer,但它是从 2013 年开始的,这些方法似乎有点过时了。我的脚本也不是面向用户的,所以我不需要打任何路线。
我可以使用以下功能将本地文件直接上传到我的存储桶,因此身份验证不是问题。我只是不确定如何将内存中的 CSV blob 或对象转换为 GCS 中的文件。我找不到很多例子,所以不确定过去是否有其他人解决过这个问题。
const { Storage } = require('@google-cloud/storage');
const storage = new Storage({
projectId,
keyFilename
});
function uploadCSVToGCS() {
const localFilePath = './test.csv';
const bucketName = "Test_Bucket";
const bucket = storage.bucket(bucketName);
bucket.upload(localFilePath);
};
我还发现了一个名为 'boto' 的 Google 引用的第 3 方插件,它似乎可以满足我的要求,但不幸的是,这是用于 python,而不是 node.js。
【问题讨论】:
标签: node.js upload google-cloud-functions google-cloud-storage