问题描述
我已经部署了一个 MongoDB,它是我的 Parse 服务器的数据库。但是我无法使用 parse-android-sdk 中的 parseFile.saveFileInBackground()
函数将超过 700 KB 的文件上传到解析服务器。 callback抛出的异常是I/O Failure
,原因是timeout。我考虑了太多问题,我想出可能改变文件在 MongoDB 中划分的默认块大小,可以解决一些问题。我在 MongoDB shell 中使用了 db.settings.save( { _id:"chunkSize",value: <size-in-magabyte> } )
。但是我真的感觉不到任何变化。执行此命令后,MongoDB 中 chunkSize
类下存储的条目的 files.fs
字段仍与之前相同,261120。我真正想做的是将此 261120 更改为 358400。我希望我的文件是分成大小为 358400 字节而不是 261120 的块。任何帮助将不胜感激。
解决方法
我设法将 mongodb 块大小从默认值 261120 字节块更改为 3000000 字节块。我正在使用 multer gridfs 存储,下面是我为增加块大小所做的代码:
const storage = new GridFsStorage({
db: connection,file: (req,file) => {
return new Promise(resolve => {
const fileInfo = {
filename: file.originalname,bucketName: "file_uploads",chunkSize: 3000000
};
resolve(fileInfo);
});
}
});