在大量文件上使用 mojolicious 上传多个文件失败

Multiple file upload with mojolicious fails on large number of files

我碰壁了,我的 google 技能这次失败了。我正在学习 mojolicious 来为我经常使用的一系列 Perl 脚本创建一个有用的前端。我已经完成了很长的路要走,但是当文件总数达到 950 时,我对(多个)文件上传感到困惑。

以前,我遇到过这样的问题:在多个文件上传中,文件会开始上传,但是一旦文件大小达到 16 mb,上传就会停止。我通过设置 $ENV{MOJO_MAX_MESSAGE_SIZE} = 50000000000 来解决这个问题。但是,这个问题是不同的。为了说明这一点,这是我尝试获取上传文件的脚本的一部分:

my $files = $self->req->every_upload('localfiles');
for my $file ( @{$files} ) {
    my $fileName = $file->filename =~ s/[^\w\d\.]+/_/gr;
    $file->move_to("temporary_uploads/$fileName");
    $self->app->log->debug("$fileName uploaded\n");
    push @fileNames, $fileName;
};
say "FILES: ".scalar(@fileNames);

对不起,它可能很难看。如果我尝试上传 949 个文件,我的数组 @fileNames 被正确填充,但如果我尝试上传 950 个文件,我的数组最终为空,而且 $files 似乎也为空。如果有人有任何想法或指示来指导我找到解决方案,我将非常感激!

If I attempt to upload 949 files, my array @fileNames is populated correctly, but if I try to upload 950 files, my array ends up empty, and it seems as though $files is empty also.

这意味着进程 运行 没有文件描述符。特别是,Linux 内核的默认值是 1024:

For example, the kernel default for maximum number of file descriptors (ulimit -n) was 1024/1024 (soft, hard), and has been raised to 1024/4096 in Linux 2.6.39.