使用EC2来压缩S3文件

时间:2010-09-27 05:16:16

标签: php zip amazon-s3 amazon-ec2 amazon-sqs

我正在尝试使用EC2压缩存储在S3存储桶中的一些文件。我已经成功地使SWFUpload与PHP一起工作并将文件上传到S3。我读到在不产生巨额转账成本的情况下压缩S3文件的最佳方法是使用EC2来处理S3。经过大量的努力,我设法让EC2服务器运行并通过它进入SSH,但现在我不知道该怎么办。

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

理想情况下,用户的批量上传会触发SQS,然后我会每天将EC2服务器旋转一次以将其全部压缩并将其交还给S3进行下载。不知道从哪里开始。想法?

1 个答案:

答案 0 :(得分:3)

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

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

一般的想法是:

  • 从存储桶(s3get <bucket/file>
  • 下载文件
  • 压缩它(gzip <file>
  • 再次上传(s3put <file>

如果您需要更多指示,请告诉我。

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

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