【发布时间】:2021-11-08 18:14:14
【问题描述】:
我正在尝试将图像上传到 Firebase 存储。 上传本地图片时我没有问题,使用:
import pyrebase
db_credentials = "local_file.json"
firebase_config = {
'apiKey': "...",
'authDomain': "...",
'databaseURL': "...",
'projectId': "...",
'storageBucket': "...",
'messagingSenderId': "...",
'appId': "...",
'measurementId': "...",
'serviceAccount': db_credentials
}
firebase_storage = pyrebase.initialize_app(firebase_config)
storage = firebase_storage.storage()
storage.child('remote_path').put('local_path.png')
但是,在我的情况下,图像是来自远程相机的帧,使用 OpenCV 检索,因此我将其作为 np.array。我尝试像上一个示例一样使用它,但它不起作用。
cap = cv2.VideoCapture(remote_camera_address)
ret, frame = cap.read() -> frame is a np array
storage.child('remote_path').put(frame)
这是返回错误:
raise ValueError('total bytes could not be determined. Please '
ValueError: total bytes could not be determined. Please pass an explicit size.
显然,我可以将 np 数组保存到本地图像,然后上传该图像并删除它,但我想知道是否可以以更简洁的方式进行。
【问题讨论】:
-
我不确定您使用的是什么 SDK,但错误消息似乎与此处相同(显示如何传递他的大小):stackoverflow.com/questions/59210646/…
-
现在添加了更多信息。您链接的解决方案似乎使用了与我现在正在使用的不同的库,我会看看它
-
啊,你正在使用 Pyrebase。这抽象了我在其
putimplementation 中链接的答案中的调用。您可能希望自己直接使用底层存储桶,或者您可以考虑为 Pyrebase 提交功能请求。
标签: python firebase firebase-storage