小编Pet*_*teY的帖子

Perl程序可有效处理目录中的500,000个小文件

我每天晚上都在处理一个大目录。每晚它会累积大约一百万个文件,其中一半.txt是我需要根据其内容移动到其他目录的文件。

每个.txt文件都是用管道分隔的,并且仅包含20条记录。记录6是包含我需要确定将文件移动到哪个目录的信息的记录。

记录示例:

A|CHNL_ID|4
Run Code Online (Sandbox Code Playgroud)

在这种情况下,文件将移至/out/4

此脚本的处理速度为每小时80,000个文件。

关于如何加快速度有什么建议吗?

opendir(DIR, $dir) or die "$!\n";
while ( defined( my $txtFile = readdir DIR ) ) {
    next if( $txtFile !~ /.txt$/ );
    $cnt++;

    local $/;
    open my $fh, '<', $txtFile or die $!, $/;
    my $data  = <$fh>;
    my ($channel) =  $data =~ /A\|CHNL_ID\|(\d+)/i;
    close($fh);

    move ($txtFile, "$outDir/$channel") or die $!, $/;
}
closedir(DIR);
Run Code Online (Sandbox Code Playgroud)

regex perl aix readdir file-processing

4
推荐指数
1
解决办法
357
查看次数

修复 Checkmarx XSS 漏洞

Checkmarx 为我的 Controller 类中的以下方法提供了 XSS 漏洞。\n具体来说:此元素\xe2\x80\x99s 值(ResultsVO)然后在没有经过适当清理或验证的情况下流经代码,并最终在方法中显示给用户:

\n\n
 @RequestMapping(value = "/getresults", method = RequestMethod.POST, produces = "application/json")\n    @ResponseBody\n    public ResultsVO getConfigResults(@RequestBody ResultsVO resultsVO, HttpServletRequest request)\n            throws OverrideApplicationException {\n        String loggedUserId = request.getHeader("USER");\n        return resultsService.getConfigResults(resultsVO, loggedUserId);\n    }\n
Run Code Online (Sandbox Code Playgroud)\n\n

ResultsVO 对象有很多 String 属性,我只是想知道是否有一种优雅的方法对它们进行编码以防止此漏洞。

\n

java controller sanitization owasp checkmarx

2
推荐指数
1
解决办法
1万
查看次数