我正在尝试使用SWORDv2协议将带有curl的zip文件发送到基于DSpace 6.3的存储库。
我从Perl脚本中调用curl,得到状态200响应,该响应未在存储库中发送文件,如果从命令行发送,则得到状态201响应,并且文件已发送成功。
Perl代码是这个
my $call = 'curl -i --data-binary "@'.$filename.'" -H "Content-Disposition:attachment; filename='.$filename.'" -H "Content-Type:'.$type.'" -H "Packaging:http://purl.org/net/sword/package/METSDSpaceSIP" -u '.$user.':'.$pwd.' -X POST '.$url.$handle;
system($call);
我需要接收状态201,就像从命令行中调用状态一样。
编辑:
变量值(由于存在敏感信息而被混淆):
my $filename = "foo.zip";
my $type = "application/zip";
my $user = 'foo@mydomain.com';
my $pwd = 'foobarbaz';
my $url = 'http://fobar.mydomain.com/baz/handle/i/';
my $handle = '1234';
$url = $url.$handle;
# So url is http://fobar.mydomain.com/baz/handle/i/1234