php 下载s3文件系统,如何使用php和Amazon S3 sdk下载文件?

我正在努力使我的脚本通过php在Amazon S3存储桶中显示test.jpg.

这是我到目前为止所拥有的:

require_once('library/AWS/sdk.class.php');

$s3 = new AmazonS3($key, $secret);

$objInfo = $s3->get_object_headers('my_bucket', 'test.jpg');

$obj = $s3->get_object('my_bucket', 'test.jpg', array('headers' => array('content-disposition' => $objInfo->header['_info']['content_type'])));

echo $obj->body;

这只是转储页面上的文件数据.我想我还需要发送content-disposition头文件,我认为这是在get_object()方法中完成的,但事实并非如此.

解决方法:

这两种方法都适合我.第一种方式似乎更简洁.

$command = $s3->getCommand('GetObject', array(

'Bucket' => 'bucket_name',

'Key' => 'object_name_in_s3'

'ResponseContentDisposition' => 'attachment; filename="'.$my_file_name.'"'

));

$signedUrl = $command->createPresignedUrl('+15 minutes');

echo $signedUrl;

header('Location: '.$signedUrl);

die();

或者更罗嗦但仍然功能性的方式.

$object = $s3->getObject(array(

'Bucket' => 'bucket_name',

'Key' => 'object_name_in_s3'

));

header('Content-Description: File Transfer');

//this assumes content type is set when uploading the file.

header('Content-Type: ' . $object->ContentType);

header('Content-Disposition: attachment; filename=' . $my_file_name);

header('Expires: 0');

header('Cache-Control: must-revalidate');

header('Pragma: public');

//send file to browser for download.

echo $object->body;

标签:php,amazon-s3

来源: https://codeday.me/bug/20191001/1838799.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值