【发布时间】:2020-09-01 17:17:20
【问题描述】:
我愿意创建一个php函数,在js中触发,可以:
- 从特定文件夹中检索所有 AWS S3 存储桶文件(我也可以提供每个文件的路径)
- 创建一个包含所有 S3 文件的 Zip
- 按下触发器时下载 Zip (cta)
我可以使用 getObject 方法from this example 下载单个文件但是,我找不到任何信息来下载多个文件并对其进行压缩。
我尝试了 downloadBucket 方法,但是它下载了我的项目架构中的所有文件,而不是作为 zip 文件。 这是我的代码:
<?php
// AWS Info + Connection
$IAM_KEY = 'XXXXX';
$IAM_SECRET = 'XXXXX';
$region = 'XXXXX';
require '../../vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$FolderToDownload="FolderToDownload";
// Connection OK
$s3 = S3Client::factory(
array(
'credentials' => array(
'key' => $IAM_KEY,
'secret' => $IAM_SECRET
),
'version' => 'latest',
'region' => $region
)
);
try {
$bucketName = 'XXXXX';
$destination = 'NeedAZipFileNotAFolderPath';
$options = array('debug'=>true);
// ADD All Files into the folder: NeedAZipFileNotAFolderPath/Files1.png...Files12.png...
$s3->downloadBucket($destination,$bucketName,$FolderToDownload,$options);
// Looking for a zip file that can be downloaded
// Can I use downloadBucket? Is there a better way to do it?
// if needed I can create an array of all files (paths) that needs to be added to the zip file & dl
} catch (S3Exception $e) {
echo $e->getMessage() . PHP_EOL;
}
?>
如果有人可以提供帮助,那就太好了。 谢谢
【问题讨论】:
标签: php amazon-web-services amazon-s3 zip