Рейтинг:0

Чтение только метаданных файла из корзины Google Cloud Storage в облачную функцию на Python (без загрузки файла или его данных!)

флаг mx

мне нужно что-то вроде Облачное хранилище для Firebase: загрузка метаданных всех файлов, только не в Angular, а в Python и только для выбранного файла.

Цель состоит в том, чтобы вернуть эту информацию, когда облачная функция завершает работу с возвращаться заявление или просто зарегистрировать его во время работы облачной функции, как только файл будет сохранен в корзине Google Storage. Имея под рукой эту информацию, можно запустить другое задание после заданной метки времени. Конвейер синхронный.

Я нашел ответы на вопросы о загрузке файла или его данных в облачную функцию

для извлечения статистики данных в работающую облачную функцию из внешнего файла.

Поскольку я не хочу сохранять большой файл или его данные в памяти в любое время только для получения некоторых метаданных, я хочу скачать Только метаданные из этого файла, которые хранятся в корзине в Google Storage, то есть метка времени и размер.

Как я могу получить только метаданные CSV-файла из корзины Google Cloud Storage в облачную функцию Google?

Zeenath S N avatar
флаг cn
Эй, ты пробовал код? Если вы это сделали, пожалуйста, предоставьте его. Также сообщите нам об ошибке, которую вы получаете в коде.
questionto42standswithUkraine avatar
флаг mx
@ZeenathSN Эй, хороший вопрос, я пока отложил его. На данный момент я использую обходной путь в Python: 1. `datetime.now()` 2. подсчитаны записанные строки 3. количество имен полей в качестве количества столбцов. Я поместил это в журнал и в оператор возврата. Я еще не тестировал ничего подобного, что я мог бы получить в качестве метаданных из Google Cloud Storage. На данный момент я не буду тратить время на то, чтобы идти дальше, пока не получу ответ здесь.
Zeenath S N avatar
флаг cn
Возможно, эта [ссылка на GitHub] (https://github.com/googleapis/python-storage/blob/main/samples/snippets/storage_get_bucket_metadata.py) может вам помочь?
questionto42standswithUkraine avatar
флаг mx
@ZeenathSN Спасибо, нет, он загружает файл из корзины в память контейнера GCF (если я не ошибаюсь, поправьте меня иначе), см. `bucket = storage_client.get_bucket(bucket_name)`. Это было бы бесполезным трафиком, так как файл, с которым я работаю, большой. Я сохраняю его непосредственно в GCS, чтобы он не хранился в памяти в контейнере GCF. Тогда я не хочу загружать весь файл только для того, чтобы поймать его метаданные.
questionto42standswithUkraine avatar
флаг mx
@ZeenathSN Просто поймите, что выше я допустил ошибку, что само ведро в любом случае не является файлом, так что весь код дает метаданные, да, но не для выбранного файла. Поэтому код github не решает ее, а идет в правильном направлении.
Рейтинг:1
флаг cn

Существует Документ Google присутствует, который показывает, как получить метаданные, похожие на ссылку GitHub, которую я предоставил в комментарии. Вы можете посмотреть в библиотеке здесь

Он просто получает метаданные и не извлекает данные объекта, пока вы не вызовете download_to_filename()

В противном случае вы можете ознакомиться с API:получить документацию где он показывает, что извлекает метаданные только в том случае, если альт = медиа не указано и попробуйте.

questionto42standswithUkraine avatar
флаг mx
Вы правы, `blob = Bucket.get_blob(blob_name)`, вероятно, еще не загружает файл в облачную функцию, поскольку он используется для примера запроса метаданных: [Просмотр и редактирование метаданных объекта](https://cloud.google .com/storage/docs/viewing-editing-metadata#view) --> "Примеры кода" --> "Python". Я наблюдал за этими примерами кода, я думал, что мне придется использовать [`gsutil`, который недоступен в GCF] (https://stackoverflow.com/questions/61795056/run-a-gsutil-command-in- a-google-cloud-функция). Моя ошибка.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.