通过Perl列出Amazon S3存储桶时抛出XML错误
我试图列出bucket(amazons3)中的所有元素。直到上个月为止,这一切都很顺利。现在抛出错误:通过Perl列出Amazon S3存储桶时抛出XML错误,perl,amazon-web-services,amazon-s3,Perl,Amazon Web Services,Amazon S3,我试图列出bucket(amazons3)中的所有元素。直到上个月为止,这一切都很顺利。现在抛出错误: Character reference  refers to an illegal XML character () [Ln: 2, Col: 8456606880] 代码: 此错误会引发以下错误: Character reference  refers to an illegal XML character () [Ln: 2, Col: 845660688
Character reference  refers to an illegal XML character () [Ln: 2, Col: 8456606880]
代码:
此错误会引发以下错误:
Character reference  refers to an illegal XML character () [Ln: 2, Col: 8456606880]
是因为桶中的元素数量吗?超过10万
有什么解决方案可以抑制这种情况吗?虽然这不是一个完美的解决方案,但我在下面的perl模块中只注释了2行,效果很好
/usr/local/share/perl5/XML/SAX/PurePerl.pm
注释行(387和388):
我不知道为什么它在以后工作正常时不得不抄袭它。听起来好像有一个模块被S3的API返回的东西卡住了,可能是一个包含类似于
代码>或ascii 0x01。从http请求捕获响应主体并对其进行检查。不幸的是,当期望代码“正常工作”或报告一个有意义的错误时,您必须像这样深入研究模块代码。。。但是CPAN上可用的S3模块的代码质量非常差。
383 if ($data =~ /^#x([0-9a-fA-F]+);/) {
384 my $ref = $1;
385 $reader->move_along(length($ref) + 3);
386 my $char = chr_ref(hex($ref));
387 #$self->parser_error("Character reference &#$ref; refers to an illegal XML character ($char) 1", $reader)
388 # unless $char =~ /$SingleChar/o;
389 $self->characters({ Data => $char });
390 return 1;
391 }