Облачное хранилище python Firebase — загрузка файла без сохранения его локально

#python #zip #google-cloud-storage #firebase-admin

#python #zip #google-облачное хранилище #firebase-администратор

Вопрос:

Я хочу загрузить zip-файл в облачное хранилище Firebase, но я не хочу сохранять его локально. Вместо этого я хочу сохранить его в памяти (используя BytesIO ), а затем загрузить напрямую. Возможно ли это?

Ответ №1:

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

В Blob классе есть метод с именем upload_from_string (ссылка). Метод принимает bytes , и также можно добавить тип содержимого. Пример. Я смог запустить что-то подобное:

     # create simplest BytesIO object
    b = io.BytesIO(b'hello')
    # create storage client
    storage_client = storage.Client()
    # create test bucket
    bucket = storage_client.bucket("vittoh-test-bytesio")
    # create test blob
    blob = bucket.blob("vitooh-test-blob")
    # upload with type zip
    blob.upload_from_string(b.read(),content_type='application/zip')
  

Это создало объект с content_type «application / zip» в моем тестовом ведре. Я не знаю, как вы хотите создать этот zip-файл BytesIO , но после этого это должно быть возможно.