使用Curl从firebase导出大型json数据时出现问题
我需要从Firebase数据库中的节点导出所有数据,但是文件太大,无法通过Firebase控制台中的“导出”选项下载。 因此,我尝试通过Curl使用firebase REST api下载json文件,调用如下:使用Curl从firebase导出大型json数据时出现问题,firebase,curl,firebase-realtime-database,Firebase,Curl,Firebase Realtime Database,我需要从Firebase数据库中的节点导出所有数据,但是文件太大,无法通过Firebase控制台中的“导出”选项下载。 因此,我尝试通过Curl使用firebase REST api下载json文件,调用如下: curl--globoff-k-odr.json”https://mydatabase.firebaseio.com/data.json?format=export“ 该命令能够在一定的文件大小范围(0-275Mb)内执行下载。不幸的是,我想下载的主文件大约是450MB。我在下载时遇到了
curl--globoff-k-odr.json”https://mydatabase.firebaseio.com/data.json?format=export“
该命令能够在一定的文件大小范围(0-275Mb)内执行下载。不幸的是,我想下载的主文件大约是450MB。我在下载时遇到了这个错误
{ "error" : "Payload is too large"}
我还试图通过拆分文件并设置下载限制来获取该文件,但它仍然会给我同样的错误:“有效负载太大”
任何帮助都将不胜感激
谢谢拆分文件的简单方法是使用URI参数。例如,如果您有这样的数据结构:
{
"data":{
"users":{
//...dataset
},
"posts":{
//...dataset
},
"comments":{
//...dataset
}
}
}
运行curl--globoff-k-odr.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"
我也遇到了这个问题,通过使用<强>邮递员<<强> >强>导入<强>功能,因为下载一个大的JSON文件有时在途中遇到失败。您可以将传统的cUrl命令放在它上面。到达响应后,只需单击保存响应。Postman有时还需要预览JSON,甚至冻结UI,但您不必为此烦恼。
错误:HTTP错误:413,负载太大
我已经在JSON()的HTTP状态和错误代码上找到了错误,建议我使用“重写方法”我不知道如何为firebase导出实现它,我也尝试将数据集复制到firebase上的另一个项目,但没有成功。相同错误..您链接的错误代码似乎与云存储API有关。以下是实时数据库:。。我想他们忘了记录您的错误,或者他们可能从未预料到会发生这种情况。如果json中只有一个节点(数组),例如“data”:[“obj1”、“obj2”、“obj3”…]@Choletski使用数组索引作为键。无论如何,Firebase都是这样对待他们的。确保您知道索引是从0开始还是从1开始,因为如果您存储了基于1的数组,0索引将为您提供空值。“shallow”参数适用于我们中的一些人。让我们获得JSON树顶层的键,而不必下载整个内容。然后我们可以分别备份每个密钥。
curl --globoff -k -o dr.json "https://mydatabase.firebaseio.com/data/users.json?shallow=true&format=export"