Загрузка длинного списка файлов в хранилище firebase

#python #firebase-admin

#python #firebase-администратор

Вопрос:

Я пытаюсь загрузить очень длинный список файлов в мое хранилище firebase.Я использую python и firebase admin Sdk. Я получаю эту ошибку:

Итак, вот ошибка, которую я получаю: google.api_core.exceptions.Не найдено: 404 СООБЩЕНИЯ https://www.googleapis.com/upload / storage/v1/b/gs://bismart-def3c.appspot.com/o?uploadType=возобновляемый: (‘Заголовки ответов должны содержать заголовок’, ‘местоположение’)

 import os
   import firebase_admin
   from firebase_admin import credentials, firestore, storage
   path = 'G:\JURISPRUDENCE'

   files = []
   fileN = []

cred = credentials.Certificate("C:UsersGeorgebismart-def3c-firebase-adminsdk-ib3f9-6a1f172321.json")
firebase_admin.initialize_app(cred, {
    'storageBucket': 'gs://bismart-def3c.appspot.com'
})


def upload(file,name):
    db = firestore.client()
    bucket = storage.bucket()
    blob = bucket.blob(name)
    outfile=file

    with open(outfile, 'rb') as my_file:
         blob.upload_from_file(my_file)   




# r=root, d=directories, f = files
for r, d, f in os.walk(path):
    for file in f:
        if '.docx' in file:
            files.append(os.path.join(r, file))
            upload(os.path.join(r, file),file)
            fileN.append(file)


for f in files:
    for k in fileN:
        print("uploaded"   k)
  

В настоящее время мне не удается выполнить загрузку

Комментарии:

1. storageBucket должно быть просто имя корзины с любыми префиксами, такими как gs://

Ответ №1:

Я переключился на Google cloud / storage api. Он имеет очень простую реализацию: просто так, и я смог загрузить свой файл:

 def upload_blob(bucket_name, source_file_name, destination_blob_name):
    """Uploads a file to the bucket."""
    storage_client = storage.Client()
    bucket = storage_client.get_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))
  

Согласно документам. Надеюсь, это поможет любому, кто ищет