Файл Google Cloud Platform на сервер узлов через 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);
}
});
Следующее представляется логичным, но возвращает только метаданные, а не фактический файл для использования в обратном вызове;
textBucket.get(fileName, function(err, file) {
if(err) {
console.log("File not retrieved: " + err);
} else {
callback(file);
}
});
Вероятно, неудивительно, что это не сработает, так как на самом деле это не указано в официальной документации, но опять же, это не простая функция asnyc, которая возвращает запрашиваемый вами документ.
1 ответ
Метод get
на Bucket
Объект задокументирован здесь: https://googlecloudplatform.github.io/gcloud-node/
Если вы хотите просто загрузить файл в память, попробуйте метод download
на File
Объект: https://googlecloudplatform.github.io/gcloud-node/. Вы также можете использовать createReadStream
если используется потоковый рабочий процесс.
Если у вас есть идеи по улучшению документов, было бы здорово, если бы вы открыли проблему на https://github.com/googlecloudplatform/gcloud-node чтобы мы могли облегчить ее работу для следующего человека.