然而,SD卡有足够的空间是可用的。我想上传和存储SD卡上的一个大文件。建议使用UploadFile参数。在发布了一个大文件之后,我得到了状态代码400和body {"detail": "There was an error parsing the body"}的响应。我假设FastAPI知道上传的文件太大,无法存储在内存中,因此决定将其存储在磁盘上。不幸的是,所选的磁盘也太小。
这种情况发生在拥有内部SD卡的设备上(比如三星Galaxy S3)。在生根设备之后,我已经能够识别所造成的问题,因为sdcard是作为一个单独的文件系统(称为FUSE)挂载的,我的应用程序打开的文件实际上是由系统进程/ system /bin/sdcard/打开的。--这将设备上的所有进程限制为1024个文件描述符,只有(位于SD卡上的文件)。1024个文件描述符限制是Android每个进程打开的最大文件。