【发布时间】:2021-06-14 07:31:48
【问题描述】:
我目前正在创建一个 Web 应用程序 (Flask),用户可以在其中登录并将照片上传到 Google Firebase。在代码中的某一时刻,我最初将用户上传的照片保存到本地文件夹,但部署后无法正常工作,因此我决定将其临时存储在 Google 存储中,分析其中的面孔,然后将其删除。但是,由于某种原因,我无法将其从 Google 存储中删除。
Firebase 初始化:
import pyrebase
from pyrebase.pyrebase import storage
import firebase_admin
from firebase_admin import storage, credentials
firebase = pyrebase.initialize_app(json.load(open('firebase/firebaseConfig.json')))
auth = firebase.auth()
db = firebase.database()
storage = firebase.storage()
我以前不需要删除存储中的照片,但我可以存储图像并检索它们的 URL 以供下载,如下所示。我确定图像存储在我的 Google 存储中,当我尝试 storage.delete() 时尝试失败
try:
storage.child("images/temp/" + filename).put(image, userIdToken)
current_app.logger.info("[UPLOAD-IMAGE] Photo saved, grabbing url")
imageURL = storage.child("images/temp/" + filename).get_url(None)
anazlyzeInfo = recognize.facialRecognition(imageURL)
delete_temp_image_path = "images/temp/" + filename
#storage.delete(imageURL) # same error happens when URL is passed
storage.delete(delete_temp_image_path)
异常中描述的错误是:'Storage' object has no attribute 'bucket'
我研究了一段时间并尝试了其他解决方案,例如StorageRef
遇到了错误'Storage' has no attribute 'ref'。
我也尝试了 A Service Account 之后的 Google Admin SDK 设置,但现在我不知道该怎么做:
cred = credentials.Certificate(json.load(open('firebase/fiddl-dev-firebase-adminsdk-stuffdnsnfsnfk.json')))
admin = firebase_admin.initialize_app(cred)
我尝试了一段时间,但我无法弄清楚admin 可以调用什么。
我尝试的两种修复方法是否正确?我以前对 Firebase 的使用水平很低,我认为删除也是一样的。谢谢!
【问题讨论】:
标签: python firebase flask google-cloud-storage pyrebase