使用Curl从firebase导出大型json数据的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Curl从firebase导出大型json数据的问题相关的知识,希望对你有一定的参考价值。
我需要从Firebase数据库中的节点导出所有数据,但似乎该文件太大而无法通过firebase控制台中的“导出”选项下载。因此,我尝试通过使用firebase REST api通过Curl下载json文件:
curl --globoff -k -o dr.json "https://mydatabase.firebaseio.com/data.json?format=export"
此命令能够执行特定范围的文件大小(0 - 275Mb)的下载。不幸的是,不是我要下载的主文件,大约450 MB。尝试下载时出现此错误。
{ "error" : "Payload is too large"}
我也尝试通过拆分并设置下载限制来获取文件,但它仍然给我带来“Payload太大”的相同错误
curl --range 0-55555555 --globoff -k -o dr.json "https://mydatabase.firebaseio.com/data.json?format=export"
任何帮助将非常感激。
谢谢
答案
分割文件的简单方法是使用shallow
URI参数。如果您有这样的数据结构,例如:
{
"data":{
"users":{
//...dataset
},
"posts":{
//...dataset
},
"comments":{
//...dataset
}
}
}
当你运行curl --globoff -k -o dr.json "https://mydatabase.firebaseio.com/data.json?shallow=true&format=export"
时它会返回:
{
"data":{
"users":true,
"posts":true,
"comments":true
}
}
然后,您可以使用以下内容下载users
节点:
curl --globoff -k -o dr.json "https://mydatabase.firebaseio.com/data/users.json?format=export"
对于posts
和comments
节点也是如此。
我希望这些节点不会太大。但如果它恰好是,你可以再次使用浅参数将它们分成更小的部分:
curl --globoff -k -o dr.json "https://mydatabase.firebaseio.com/data/users.json?shallow=true&format=export"
以上是关于使用Curl从firebase导出大型json数据的问题的主要内容,如果未能解决你的问题,请参考以下文章