我正在寻找一种简单的方法来处理移动应用中的离线/在线情况。似乎pouchdb是一个使用与cloudant配对的有趣选项。但是用它来存储像图像这样的二进制数据是个好主意吗?或存储大小或其他任何限制?
答案 0 :(得分:4)
PouchDB支持文档附件,就像CouchDB一样。因此,应该可以将本地文件附加到PouchDB数据库,然后将数据同步到远程CouchDB / Cloudant数据库。
这是离线优先存储的绝佳解决方案;您将遇到的存储限制取决于所使用的浏览器。 See PouchDB's FAQ page for the list of browsers and storage limits
如果您担心数据库中包含太多或太大附件的性能问题,您可以采用混合方法并使用附件初始保存附加对象,但使用脚本服务器端进行附件,复制到对象存储,然后修改文档以包含附件的新家的URL。然后,您可以删除附件本身以减少存储空间。
答案 1 :(得分:0)
存储图片或文件
<input type="file">
js
var input = document.querySelector('input');
input.addEventListener('change', function () {
var file = input.files[0]; // file is a Blob
db.put({
_id: 'mydoc',
_attachments: {
filename: {
type: file.type,
data: file
}
}
}).catch(function (err) {
console.log(err);
});
});