#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
, но после этого это должно быть возможно.