我正在尝试使用EC2压缩存储在S3存储桶中的一些文件。我已经成功地使SWFUpload与PHP一起工作并将文件上传到S3。我读到在不产生巨额转账成本的情况下压缩S3文件的最佳方法是使用EC2来处理S3。经过大量的努力,我设法让EC2服务器运行并通过它进入SSH,但现在我不知道该怎么办。
压缩S3文件并将它们放回桶中的最佳方法是什么?
理想情况下,用户的批量上传会触发SQS,然后我会每天将EC2服务器旋转一次以将其全部压缩并将其交还给S3进行下载。不知道从哪里开始。想法?
答案 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