Файл 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 чтобы мы могли облегчить ее работу для следующего человека.

Другие вопросы по тегам