Google 云平台文件通过gcloud到节点服务器

Google Cloud Platform file to node server via gcloud

我在 Google Cloud Platform 上有一个存储桶,我的部分应用程序在其中添加了具有唯一名称(无扩展名)的小文本文件。

第二个应用程序需要检索单个文本文件(一次只能检索一个)以插入到模板中。

我找不到正确的 api 要求。

按要求配置:

var gcloud = require('gcloud');

var gcs = gcloud.storage({
    projectId: settings.bucketName,
    keyFilename: settings.bucketKeyfile 
});
var textBucket = gcs.bucket(settings.bucketTitle);

保存到存储桶效果很好:

textBucket.upload(fileLocation, function(err, file) {
    if(err) {
        console.log("File not uploaded: " + err);
    } else {
        // console.log("File uploaded: " + file);
    }
});

以下内容似乎合乎逻辑,但 returns 只有元数据,而不是回调中使用的实际文件;

textBucket.get(fileName, function(err, file) {
    if(err) {
        console.log("File not retrieved: " + err);
    } else {
        callback(file);
    }
});

可能这不起作用并不奇怪,因为它实际上不在官方文档中,但话又说回来,简单的 asnyc 函数也不是 returns 您要求的文档。

Bucket 对象上的方法 get 记录在此处:https://googlecloudplatform.github.io/gcloud-node/#/docs/v0.29.0/storage/bucket?method=get

如果您只想将文件下载到内存中,请在 File 对象上尝试 download 方法:https://googlecloudplatform.github.io/gcloud-node/#/docs/v0.29.0/storage/file?method=download. You can also use createReadStream 如果使用流工作流。

如果您有改进文档的想法,如果您在 https://github.com/googlecloudplatform/gcloud-node 上打开一个问题会很棒,这样我们可以让下一个人更容易。