2016-03-15 76 views
0

我在Google云端平台上有一个存储桶,其中一部分应用程序添加了具有唯一名称(无扩展名)的小文本文件。Google Cloud Platform文件通过gcloud登录到节点服务器

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

我无法找到正确的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); 
    } 
}); 

下似乎顺理成章,但只返回的元数据,而不是在回调使用的实际文件;

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

也许并不奇怪,这并不工作,因为它实际上并不是正式文件,但话又说回来,也不是一个简单的asnyc函数返回你问一个文件。

回答

1

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

如果你想简单的文件下载到内存中,想尽了办法download一个File对象:https://googlecloudplatform.github.io/gcloud-node/#/docs/v0.29.0/storage/file?method=download。如果使用流式工作流程,您还可以使用createReadStream

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

+0

Steven,谢谢你 - 我其实刚刚回来写下我的解决方案,这本质上就是你所说的;在File对象上调用下载。此外,这些文件是JSON,但添加了反斜杠(backslashes) - 需要JSON.parse()。文档可能没问题;我只是一个程序员... – Squidinker