3

我正在尝试使用 EC2 压缩存储在 S3 存储桶中的一些文件。我已经成功地让 SWFUpload 与 PHP 一起工作并将文件上传到 S3。我读到压缩 S3 文件而不产生巨额传输成本的最佳方法是使用 EC2 处理 S3。经过大量努力,我设法让 EC2 服务器运行并通过 SSH 连接到其中,但现在我不知道从这里做什么。

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

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

4

1 回答 1

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
于 2010-10-24T23:44:14.767 回答