Хочу спросить вашего совета. Я пытаюсь добавить триггер к функции Firebase в Python, который будет реагировать на загрузку нового изображения в корзину хранилища Firebase. Цель этой функции — получить это недавно загруженное изображение и снова загрузить его в корзину Google Cloud, которой нет в Firebase, но когда я развертываю функцию и загружаю новое изображение в Firebase, это не работает, это не работает. не появится в корзине Google Cloud.
Буду очень благодарен за любой совет.
Спасибо. вам очень много.
Я ожидал, что после загрузки изображения в корзину хранилища Firebase изображение будет загружено в обычное хранилище. Google Cloud Bucket
Вот вся моя программа, которую я загрузил в Firebase с помощью команды "firebase Deploy".
из firebase_functions import Storage_fn
из firebase_admin import Initialize_app, Storage
из google.oauth2 import service_account
initialize_app()
def upload_to_bucket(bucket_name, bytes_data, target_blob_name):
credentials = service_account.Credentials.from_service_account_file(
'path/to/credentials.json'
)
storage_client = storage.Client(credentials=credentials)
bucket = storage_client.bucket(bucket_name)
blob = bucket.blob(destination_blob_name)
blob.upload_from_string(bytes_data)
@storage_fn.on_object_finalized(bucket="myproject-ae52c.appspot.com")
def Convert_to_binary(event: Storage_fn.CloudEvent[storage_fn.StorageObjectData]):
"""When a new object is uploaded to Cloud Storage, download it and
convert it to a binary string, then save it to a new bucket."""
source_bucket_name = event.data.bucket
file_path = event.data.name
source_bucket = storage.bucket(source_bucket_name)
blob = source_bucket.blob(file_path)
file_bytes = blob.download_as_bytes()
my_file_bytes = file_bytes
bucket_name = 'bucket-name'
destination_blob_name = 'uploaded_image'
upload_to_bucket(
bucket_name=bucket_name,
bytes_data=my_file_bytes,
destination_blob_name=destination_blob_name
)
Подробнее здесь: https://stackoverflow.com/questions/784 ... oud-bucket