【发布时间】:2020-10-23 02:34:09
【问题描述】:
因此,我尝试从 python 应用程序在 Azure Cosmos Emulator 上的本地数据库上上传大于 16mb 的数据。上传是完美的,它与项目一起创建了块。我遇到的问题是在下载上。
path = "eye1.zip"
fs = gridfs.GridFS(db)
with open(path, 'rb') as file1:
grid = fs.put(file1)
eye = fs.get(grid)
print(eye.read())
我在 .read() 命令中一直得到的错误是pymongo.errors.ProtocolError: Message length (12753158) is larger than server max message size (4194304)。那么下载我刚刚上传到设备的数据的正确程序是什么?为什么会出现这个错误,因为 gridfs 假设让您流式传输超过 16mb 的数据?
【问题讨论】:
-
PyMongo 驱动程序仅针对官方 MongoDB 服务器构建和测试。您的里程会因 CosmosDB 等仿真环境而异。我针对 MongoDB 运行了您的代码,它可以工作。它在 CosmosDB 上失败。我建议你向微软的人寻求帮助。,
-
感谢您的回答。通过在第 198 行的文件 network.py 的 pymongo 库中添加“max_message_size=50777216”,该问题得到了部分解决。
标签: mongodb pymongo azure-cosmosdb gridfs gridfs-stream