google-cloud-firestore - 在 Firestore 中存储图像参考
问题描述
我正在从头开始创建博客。我知道 Firestore 不是存储图像的地方,但云存储是。我了解到您只需要对存储在云存储中的图像的引用来检索它们,但是我是将属于博客文章的引用存储在数组中还是将地图存储在 firestore 中的该博客文章文档中?或者有没有更好的方法来做到这一点?
解决方案
在 Cloud Storage 博客中存储图像时,您必须考虑是否要包含删除它们的功能。
如果您将它们存储在数组中,然后其中一个将被删除,以防止另一个更改其引用,您可以在那里留下一些占位符,即“删除”。
所以使用python中的字典之类的概念会更合理,所以你不介意元素的顺序及其位置:
images = {'image1': 'image1.jpg', 'image2', 'image2.jpg'}
file_img = images['image2']
with open(file_img, 'rb') as file:
img = file.read()
请记住,Google Cloud Storage对存储对象的名称有一些限制:
- UTF-8编码时不能超过1024bytes
- 不能包含回车或换行
- 不能包含点“.” 或双点“..”
- 不应包含控制字符
- 不应使用字符“#”或方括号“[”、“]”
在命名和安全方面遵循谷歌云存储的最佳实践也是合理的:即避免将敏感的私有数据存储在对象的名称中,公开访问哪些对象。
推荐阅读
- matlab - matlab如何在另一个矩阵中插入一个矩阵
- swift - 将 ARReferenceImage 从阵列上传到 Firebase 存储
- php - PHP:如何通过循环推送键/值对?
- javascript - 在图像滑块之前的触摸手势
- python - rasa_core.exceptions.UnsupportedDialogueModelError:模型版本:0.0.0 实例版本:0.12.3 最低兼容版本:0.12.0
- javascript - Vue表单未提交
- protractor - 量角器:上传图像在 chrome 无头模式下不起作用
- multithreading - 单个 ActiveMQ 会话上的多个消费者
- android - 不接受 Android SDK 许可证
- redis - redis集群中如何重启节点