Получить токен хранилища Firebase для загруженного большого двоичного объекта / файла

У меня есть приложение python, которое требует, чтобы я сбросил несколько файлов в корзину Firebase Storage, обновил ссылки img файла HTML, чтобы они указывали на ранее загруженные файлы + токен, а затем сохранил сам файл HTML в корзину для дальнейшего использования . Проблема, с которой я столкнулся, заключается в том, что я не могу найти способ в Python получить уникальный токен blob / файла. Для справки, я выполнял это в Javascript с помощью getDownloadURL, который предоставляет мне URL-адрес, который выглядит следующим образом: https://firebasestorage.googleapis.com/v0/b/[project ].appspot.com/o/[bucket ]%2Ffile.png?alt=media&token=[token]

Когда я использую метод google-cloud-python blob 'path', он дает мне URL-адрес без токена, который я уже могу построить самостоятельно: /b/[project visible.appspot.com/o/[bucket ]%2Ffile.png

Может ли кто-нибудь помочь мне указать, какой метод я могу использовать для получения токена blob / файла, чтобы я мог построить полный URL-адрес?

from firebase_admin import credentials
from firebase_admin import storage

try:
    cred = credentials.Certificate("serviceAccountKey.json")
    firebase_admin.initialize_app(cred, {
        'databaseURL': 'https://[project].firebaseio.com'
    })
except Exception as e:
    print str(e.message)

bucket = storage.bucket('[project].appspot.com')
blob1 = bucket.blob(userId + '/' + file)
with open(os.path.join(tmp_dir, file), 'rb') as my_file:
    blob1.upload_from_file(my_file)

#Now I need the token but this only prints the path I already know
print blob1.path
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
1 413
1

Ответы 1

bucket = storage.bucket('[project].appspot.com')
blob1 = bucket.blob(userId + '/' + file)
with open(os.path.join(tmp_dir, file), 'rb') as my_file:
    blob1.upload_from_file(my_file)

# token here
metadata = bucket.get_blob('path_to_new_blob').metadata

Другие вопросы по теме