首页 > 解决方案 > Php AWS S3通过服务器cron作业一次下载多个文件

问题描述

我正在尝试使用以下脚本一次下载多个文件。但它只下载第一个文件。

require 'vendor/autoload.php';

use Aws\S3\Exception\S3Exception;
use Aws\S3\S3Client;

// Initial configurations.
$region     = '*****';
$bucket     = '*****';
$keyname    = '**************';
$secret     = '**************';

$s3 = Aws\S3\S3Client::factory([
  'credentials' => [
    'key'     => $keyname,
    'secret'  => $secret
  ],
    'version' => 'latest',
    'region' => $region
]);

$object_lists = [ 'Initial_Data.csv', 'Processed_Data.csv' ];

foreach( $object_lists as $object_list ) {
    $object = $s3->getObject([
    'Bucket'  => $bucket,
    'Key'     => $object_list,
  ]);

  header('Content-Description: File Transfer');
    header('Content-Type: binary/octet-stream');
    header('Content-Disposition: attachment; filename='.$object_list);
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');

    //send file to browser for download. 
    echo $object["Body"];
}

如何同时下载这两个文件?也有人可以告诉我这是通过服务器 cron 下载文件的正确方法吗?

标签: phpamazon-s3cron

解决方案


推荐阅读