从S3下载文件并使用cURL重定向

时间:2012-05-18 23:08:32

标签: curl amazon-s3

我正在尝试以编程方式从S3上的安全存储桶中下载zip文件,并且一旦将下载发送到浏览器,我希望显示收据页面。

但是我不断地将各种疯狂的角色输出到浏览器中:

$url = "https://s3.amazonaws.com/{$bucket}/{$resource}?{$authentication_params}";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('response-content-type: application/zip', 'response-content-disposition: attachment', 'Expect: 100-continue'));
$response = curl_exec($ch);
curl_close($ch);

如果我在firefox的地址栏中输入$url,则下载有效。如何下载文件然后继续我的收据页面?

2 个答案:

答案 0 :(得分:1)

您需要使用扩展名指定目标文件名才能正确下载zip文件。
因此,例如,如果您要下载位于www.url.com/myzip.zip的zip文件,则需要提供带目标文件名的-o参数。

-o告诉curl将下载的内容保存到文件中,如果没有此参数,curl将只显示文件内容,在您的情况下是二进制文件。
例如: curl -o dave.zip https://www.url.com/myzip.zip

答案 1 :(得分:1)

我最终只是简单地颠倒了我的流程的顺序,并为此使用了元刷新标题。