#python #mongodb #google-cloud-functions #google-cloud-storage #google-api-python-client
# #python #mongodb #google-cloud-функции #google-облачное хранилище #google-api-python-client
Вопрос:
Сейчас я пытаюсь создать этот простой скрипт на Python, который будет запускаться при вызове через вызов API или через функцию Google. Я очень, очень новичок в GCP и Python, поскольку я больше знаком с Azure и PowerShell, но мне нужно знать, что мне нужно использовать / вызывать, чтобы загрузить файл в корзину, а также прочитать информацию о файле, а затем подключиться к базе данных MongoDB.
Вот схема того, что мне нужно сделать:
- API / функция будет вызываться с его URL-адресом, и к нему будет прикреплен фактический файл, например, файл сейсмического типа.
- При вызове API / функции запускается скрипт Python, который захватывает этот файл и загружает его в корзину.
- Затем мне нужно выполнить команды для загруженного файла, чтобы получить такие элементы, как «версия», «компания», «wellname» и т.д.
- Затем я хочу загрузить документ со всеми этими значениями в базу данных MongoDB.
По сути, мы пытаемся воспроизвести то, что мы сделали в Azure, с помощью функций и экземпляра CosmosDB. Там мы создали функцию, которая будет загружать файл в хранилище Azure, а затем извлекать значения из файла, которые, как я полагаю, являются его метаданными. После этого мы загрузили бы документ в CosmosDB с этими значениями. Это способ записи значений, полученных из самого файла. Буду признателен за любую помощь, поскольку это часть POC, которую я пытаюсь представить!! Пожалуйста, задавайте любые вопросы!
Ответ №1:
Чтобы ответить на ваши вопросы:
Вот код о том, как загрузить файл в облачное хранилище с помощью Python:
from google.cloud import storage
def upload_blob(bucket_name, source_file_name, destination_blob_name):
"""Uploads a file to the bucket."""
# bucket_name = "your-bucket-name"
# source_file_name = "local/path/to/file"
# destination_blob_name = "storage-object-name"
storage_client = storage.Client()
bucket = storage_client.bucket(bucket_name)
blob = bucket.blob(destination_blob_name)
blob.upload_from_filename(source_file_name)
print(
"File {} uploaded to {}.".format(
source_file_name, destination_blob_name
)
)
Убедитесь, что на вашем компьютере установлена клиентская библиотека облачного хранилища. requirements.txt . Пример:
google-cloud-storage> = 1.33.0
Чтобы получить и просмотреть метаданные объекта, вот код и ссылка в качестве ссылки:
from google.cloud import storage
def blob_metadata(bucket_name, blob_name):
"""Prints out a blob's metadata."""
# bucket_name = 'your-bucket-name'
# blob_name = 'your-object-name'
storage_client = storage.Client()
bucket = storage_client.bucket(bucket_name)
blob = bucket.get_blob(blob_name)
print("Blob: {}".format(blob.name))
print("Bucket: {}".format(blob.bucket.name))
print("Storage class: {}".format(blob.storage_class))
print("ID: {}".format(blob.id))
print("Size: {} bytes".format(blob.size))
...
Наконец,
Чтобы подключиться к MongoDB с помощью Python, вот пример проекта, который может помочь вам понять, как это работает.