Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用EC2压缩S3文件_Php_Zip_Amazon S3_Amazon Ec2_Amazon Sqs - Fatal编程技术网

Php 使用EC2压缩S3文件

Php 使用EC2压缩S3文件,php,zip,amazon-s3,amazon-ec2,amazon-sqs,Php,Zip,Amazon S3,Amazon Ec2,Amazon Sqs,我试图使用EC2压缩存储在S3存储桶中的一些文件。我已经成功地让SWFUpload使用PHP并将文件上传到S3。我读到,在不产生巨大传输成本的情况下压缩S3文件的最佳方法是使用EC2处理S3。经过大量的努力,我成功地运行了一台EC2服务器并将SSH插入其中,但现在我不知道从这里该做什么 压缩S3文件并将其放回桶中的最佳方法是什么 理想情况下,用户的批量上传会触发一个SQS,然后我会每天启动一次EC2服务器,将它们全部压缩,并将它们返回S3进行下载。不知道从这里到哪里去。想法?您应该查看-ec2、

我试图使用EC2压缩存储在S3存储桶中的一些文件。我已经成功地让SWFUpload使用PHP并将文件上传到S3。我读到,在不产生巨大传输成本的情况下压缩S3文件的最佳方法是使用EC2处理S3。经过大量的努力,我成功地运行了一台EC2服务器并将SSH插入其中,但现在我不知道从这里该做什么

压缩S3文件并将其放回桶中的最佳方法是什么

理想情况下,用户的批量上传会触发一个SQS,然后我会每天启动一次EC2服务器,将它们全部压缩,并将它们返回S3进行下载。不知道从这里到哪里去。想法?

您应该查看-ec2、s3和其他AWS服务的命令行工具

当您安装该工具并设置AWS凭据时,它将创建各种命令的方便符号链接——包括s3

总的想法是:

  • 从bucket下载文件(
    s3get
  • 压缩它(
    gzip
  • 再次上传(
    s3put
如果你需要更多的指示,请告诉我

也许你想在上传之前用PHP压缩文件?这需要安装扩展

sudo pecl install zip
下面是一个示例脚本:

<?php
$zip      = new ZipArchive();
$filename = "/tmp/" . time() .".zip";
if ($zip->open($filename, ZIPARCHIVE::CREATE) !== true) {
    exit("cannot open <$filename>\n");
}
$zip->addFile('/path/to/uploaded/file');
$zip->close();

// continue uploading to s3

你能告诉我如何从S3下载该文件吗?