我有一个python应用程序,它要求我将一些文件转储到Firebase存储桶中,更新HTML文件的img链接,以便它们指向先前上传的文件+令牌,然后保存HTML文件本身进入桶中供以后使用。我遇到的问题是,我似乎无法在Python中找到一种方法来获取blob /文件的唯一标记。作为参考,我一直在使用getDownloadURL在Javascript中完成此操作,它为我提供了如下所示的URL: https://firebasestorage.googleapis.com/v0/b/[project].appspot.com/o/[bucket]%2Ffile.png?alt=media&token=[token]
当我使用google-cloud-python blob方法'路径'它给了我一个没有令牌的URL,我已经可以自己构建了: / B / [项目] .appspot.com访问/ 0 / [桶]%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
答案 0 :(得分:0)
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