如何使用CLI在AWS S3上正确解压缩和解压缩目标和压缩文件层次结构?

时间:2016-11-09 02:45:02

标签: amazon-web-services amazon-s3 static-html

我在OSX(或Linux)上使用NOUNZ data compiler,它会自动生成静态HTML文件的大量目录结构(数十万甚至数百万个文件)。< / p>

生成的目录树的简化示例如下所示......

enter image description here

通常,如果我想将整个树移动到远程Web服务器,我只需使用以下命令对tar进行压缩和压缩:

tar -cvf HTML.tar HTML
gzip HTML.tar

这会生成一个名为HTML.tar.gz

的目标压缩文件

然后我可以通过FTP或SCP将上述文件发送到远程Web服务器,我可以使用以下命令简单地解压缩文件:

gzip -d HTML.tar.gz
tar -xvf HTML.tar

这将导致Web服务器上完全相同的文件树由本地计算机上的数据编译器生成。

问题:我想使用亚马逊网络服务(AWS)简单存储解决方案(S3)模仿与上述相同的行为。

我的问题:模仿相同(或类似行为)的最佳方式是什么,我可以将整个目标和压缩树从本地服务器移动到AWS S3,然后解压缩并解压缩我的文件以重新创建整个目录结构?

targzip命令不是S3 CLI API的一部分,因此我需要找到一种可以移动目录结构的可靠方法,该目录结构可能包含数百万个文件(可能会发生一次一天)。在没有首先进行焦油压缩和压缩的情况下移动和重新创建所有内容非常慢。

注意:只是一个FYI,当数据编译器运行时,它总是删除整个旧树并重新生成一个完整的新树,从而为所有目录和文件生成全新的inode。这意味着“增量”副本和同步不可行。我每次都需要移动整棵树。

1 个答案:

答案 0 :(得分:0)

S3不会为您解压缩文件。您必须在希望S3存储它们的状态下将文件推送到S3。aws s3 sync命令(或基于MD5哈希执行增量更新的类似工具)将是您的最佳选择。您可以将sync命令拆分为多个并行同步命令。也许每个子目录运行一个进程。

关于aws s3 sync&#34;可能需要花费很长时间才能在管道中抽取数百万个文件的评论,如果您不是,请将文件压缩并将其推送到EC2服务器已经在EC2上这样做了。您应该在与S3存储区相同的区域中使用EC2服务器,使用10Gbps network performance的实例类型,并且EC2服务器应启用Enhanced Networking。这将为您提供与S3的最快连接。

相关问题