Можно ли вручную запускать триггеры событий Google Cloud Storage? - PullRequest
1 голос
/ 28 марта 2019

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

Есть ли способ сделать это, из командной строки или с помощью кода?

1 Ответ

1 голос
/ 28 марта 2019

В облачных функциях нет встроенной функции «повторного запуска всех файлов».

Как прокомментировал Дуг, один из вариантов - переписать все файлы.

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

Так что-то вроде:

exports.generateThumbnail = functions.storage.object().onFinalize((object) => {
  _generateThumbnail(object.name);
});

exports.regenerateAllThumbnails = functions.https.onRequest((req, res) => {
  ["folder/file1.jpg", "folder/file2.jpg"].forEach(name => {
    _generateThumbnail(name);
  })
});
function _generateThumbnail(name) {
  ...
}
...