javascript - 如何使用 Node js读取上传到谷歌云存储的JSON文件的内容

标签 javascript node.js google-api google-cloud-storage

我通过创建一个新项目手动将 JSON 文件上传到谷歌云存储。我能够读取文件的元数据,但我不知道如何读取 JSON 内容。

我用来读取元数据的代码是:

var Storage = require('@google-cloud/storage');
const storage = Storage({
    keyFilename: 'service-account-file-path',
    projectId: 'project-id'
});
storage
    .bucket('project-name')
    .file('file-name')
    .getMetadata()
    .then(results => {
        console.log("results is", results[0])
    })
    .catch(err => {
        console.error('ERROR:', err);
    });

谁能指导我如何读取 JSON 文件内容?

最佳答案

我使用以下代码从 Cloud Storage 读取一个 json 文件:

    'use strict';
    const Storage = require('@google-cloud/storage');
    const storage = Storage();
    exports.readFile = (req, res) => {
            console.log('Reading File');
            var archivo = storage.bucket('your-bucket').file('your-JSON-file').createReadStream();
            console.log('Concat Data');
            var  buf = '';
            archivo.on('data', function(d) {
              buf += d;
            }).on('end', function() {
              console.log(buf);
              console.log("End");
              res.send(buf);
            });     

    };

我正在从流中读取并将文件中的所有数据连接到 buf 变量。

希望对您有所帮助。

更新

读取多个文件:

'use strict';
const {Storage} = require('@google-cloud/storage');
const storage = new Storage();
listFiles();

async function listFiles() {
        const bucketName = 'your-bucket'
        console.log('Listing objects in a Bucket');
        const [files] = await storage.bucket(bucketName).getFiles();
        files.forEach(file => {
            console.log('Reading: '+file.name);
            var archivo = file.createReadStream();
            console.log('Concat Data');
            var  buf = '';
            archivo.on('data', function(d) {
                buf += d;
            }).on('end', function() {
                console.log(buf);
                console.log("End");
            });    
        });
};

关于javascript - 如何使用 Node js读取上传到谷歌云存储的JSON文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51970205/

相关文章:

javascript - Node : removing duplicate objects from array

javascript - 尽管退出,Google 仍不断重新登录

google-api - 为什么我无法使用 Google People API 检索电子邮件地址和电话号码?

facebook-graph-api - facebook API 中的刷新 token 和访问 token

javascript - Mongodb点字段更新

javascript - 从 DER 证书中提取通用名称

javascript - 使倒计时器显示模态窗口 Bootstrap

javascript - 如何定位除 IE 和 Edge 之外的所有浏览器

node.js - 如何在 Mongoose 中使用混合数据类型限制值?

javascript - 环回给出超出最大调用堆栈大小的错误