Mar*_*ndo 5 google-cloud-storage firebase-storage
我正在运行基于 Firebase 实时数据库和 Firebase 存储的网络应用程序。
我需要每小时通过 Python google-cloud-storage lib 将新图像上传到 Firebase google 存储桶。这是文档。
我的图片上传代码(img_src 路径正确):
bucket = storage.bucket()
blob = bucket.blob(img_src)
blob.upload_from_filename(filename=img_path, content_type='image/png')
Run Code Online (Sandbox Code Playgroud)
图像似乎已成功上传,但在 Firebase 存储中手动查看时,无法加载。所有图像的规格似乎都是正确的。请将手动上传的图像(加载正常)的规格与损坏的图像进行比较。
感谢帮助!
hem*_*cio 13
每当您使用 Firebase 控制台上传图像时,都会自动生成访问令牌。但是,如果您使用任何 Admin SDK 或 gsutil 上传图像,则需要自己手动生成此访问令牌。
以下示例介绍了如何使用 Admin Python SDK 为图像生成和设置访问令牌。
import firebase_admin
from firebase_admin import credentials
from firebase_admin import storage
# Import UUID4 to create token
from uuid import uuid4
cred = credentials.Certificate("path/to/your/service_account.json")
default_app = firebase_admin.initialize_app(cred, {
'storageBucket': '<BUCKET_NAME>.appspot.com'
})
bucket = storage.bucket()
blob = bucket.blob(img_src)
# Create new token
new_token = uuid4()
# Create new dictionary with the metadata
metadata = {"firebaseStorageDownloadTokens": new_token}
# Set metadata to blob
blob.metadata = metadata
# Upload file
blob.upload_from_filename(filename=img_path, content_type='image/png')
Run Code Online (Sandbox Code Playgroud)
这是快速解释:
from uuid import uuid4new_token = uuid4()metadata = {"firebaseStorageDownloadTokens": new_token}blob.metadata = metadatablob.upload_from_filename(...)此解决方案可用于任何 Admin SDK。
Firebase 支持人员表示正在修复此问题,但我认为遇到此问题的任何人都应该这样做,而不是等待Firebase修复此问题。
| 归档时间: |
|
| 查看次数: |
1420 次 |
| 最近记录: |