Список файлов, измененных после определенной отметки времени в Google Cloud Storage Bucket - PullRequest
0 голосов
/ 05 февраля 2019

Я хочу перечислить файлы, которые были изменены / добавлены в корзину хранения Google Cloud после определенной отметки времени в файле node.js.Я просматривал документацию https://cloud.google.com/storage/docs/how-to, но не нашел никакого механизма для этого.

const {Storage} = require('@google-cloud/storage');
const storage = new Storage();
const bucketName = 'my-bucket';
const [files] = await storage.bucket(bucketName).getFiles();

Как можно перечислить файлы, которые были добавлены после отметки времени в сегменте?

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

Как указал Дуг Стивенсон, прямой функции для этого не существует, однако вы можете узнать, когда файл был последний раз изменен, выполнив поиск по его метаданным.Например, посмотрите этот фрагмент кода:

const {Storage} = require('@google-cloud/storage');
const storage = new Storage();
const bucketName = 'your-bucket-name';


storage.bucket(bucketName).getFiles(function(err, files) {
  if (!err) {
    // files is an array of File objects.
         files.forEach(function (file){
                file.getMetadata(function (err, metadata){
                        // TODO: Save only the files before certain metadata.updated date
                        console.log("File named " + metadata.name +
                                    "last updated on: " + metadata.updated);
                });
         });
  }
});

Затем вы должны создать условие внутри функции обратного вызова getMetadata, чтобы только просматривать / хранить файлы после определенного порогового значения metadata.update.

0 голосов
/ 05 февраля 2019

Нет прямой поддержки API для этого.Однако, если вам нужно будет часто выполнять этот запрос, вы можете вручную создать рабочий процесс для сохранения индекса.Он будет состоять из небольшого приложения, хранящего индекс, подписанный на уведомления об изменениях в корзине, и будет иметь метод API, который будет извлекать объекты, отсортированные по дате.

0 голосов
/ 05 февраля 2019

Это не представляется возможным с данным списком API .В документации ничего не говорится о фильтрации объектов по дате.

Обычно данные обо всех загруженных файлах хранятся в базе данных, что упрощает запрос любых свойств файла, который вы хотите сохранить.Вы даже можете использовать триггер Cloud Functions для автоматической записи записи в базу данных при каждой загрузке файла.

...