2016-03-15 65 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

相關問題