Пустой файл хранится в Firebase с Python

Моя цель - создать определенные файлы (txt/pdf/excel) на моем сервере Python и затем отправить их в хранилище Firebase.

Для интеграции с Firebase Storage я использую пакет pyrebase.

До сих пор мне удалось создать файл локально и впоследствии сохранить его по правильному пути в базе данных Firebase Storage.

Однако файлы, которые я храню, всегда пусты. Что является причиной этого?

1. Генерация локального файла

import os
def save_templocalfile(specs):


    # Random something
    localFileName = "test.txt"
    localFile     = open(localFileName,"w+")
    for i in range(1000):
        localFile.write("This is line %d\r\n" % (i+1))


    return {
            'localFileName':    localFileName,
            'localFile':        localFile
        }

2. Хранение локального файла

# Required Libraries
import pyrebase
import time


# Firebase Setup & Admin Auth
config = {
  "apiKey":        "<PARAMETER>",
  "authDomain":    "<PARAMETER>",
  "databaseURL":   "<PARAMETER>",
  "projectId":     "<PARAMETER>",
  "storageBucket": "<PARAMETER>",
  "messagingSenderId": "<PARAMETER>"
}

firebase    = pyrebase.initialize_app(config)
storage     = firebase.storage()


def fb_upload(localFile):


    # Define childref
    childRef      = "/test/test.txt"
    storage.child(childRef).put(localFile)


    # Get the file url
    fbResponse = storage.child(childRef).get_url(None)


    return fbResponse

1 ответ

Решение

Проблема была в том, что я открыл свой файл только с правами на запись:

localFile = open(localFileName,"w+")

Решением было закрыть операцию записи и открыть ее с разрешениями на чтение:

# close (Write)
localFile.close()

# Open (Read)
my_file       = open(localFileName, "rb")
my_bytes      = my_file.read()

# Store on FB
fbUploadObj   = storage.child(storageRef).put(my_bytes)
Другие вопросы по тегам