Облачные функции Google onFinalize () context - PullRequest
0 голосов
/ 11 октября 2018

Как я могу передать некоторые метаданные вместе с объектом при загрузке в корзину?

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

При этом я пытался получить контекст с помощью .object().onFinalize((object, context) => {}:

{ eventId: '226356658372982',
  timestamp: '2018-10-11T09:17:07.052Z',
  eventType: 'google.storage.object.finalize',
  resource: 
   { service: 'storage.googleapis.com',
     name: 'projects/_/buckets/bucket/objects/image.jpg',
     type: 'storage#object' },
  params: {} }

Это не очень помогло.
Я могу подумать об использовании object.name условных выражений в рабочих корзинах в качестве крайней меры, но должен быть более цивилизованный способ справляться с такими ситуациями.

1 Ответ

0 голосов
/ 11 октября 2018

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

Если вы не хотите этого делать, вы можете прикрепить метаданные к файлу во время загрузки.Поскольку вы не сказали, какой язык или среду вы используете для загрузки файла, я укажу вам документацию по node.js для upload () .Обратите внимание, что есть свойство metadata необязательного аргумента options.Другие платформы имеют аналогичный способ указания метаданных во время загрузки.

Суть в том, что вам нужно выяснить в своей функции, если вы хотите обработать файл, который был завершен.

...