Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
Amazon s3 如何使用s3cmd动态上传压缩并上传到s3_Amazon S3_Compression_Gzip_S3cmd - Fatal编程技术网

Amazon s3 如何使用s3cmd动态上传压缩并上传到s3

Amazon s3 如何使用s3cmd动态上传压缩并上传到s3,amazon-s3,compression,gzip,s3cmd,Amazon S3,Compression,Gzip,S3cmd,我刚刚发现我的盒子里还有5%的硬盘空间,我还有大约250GB的mysql bin文件要发送到s3。我们已经从mysql迁移到NoSQL,目前没有使用mysql。但是,我希望在迁移之前保留旧数据 问题是,我不能在将文件发送到那里之前,在一个循环中对文件进行tar。所以我想我可以在发送之前动态地gzip,这样它就不会将压缩文件存储在硬盘上 for i in * ; do cat i | gzip -9c | s3cmd put - s3://mybudcket/mybackups/$i.gz; do

我刚刚发现我的盒子里还有5%的硬盘空间,我还有大约250GB的mysql bin文件要发送到s3。我们已经从mysql迁移到NoSQL,目前没有使用mysql。但是,我希望在迁移之前保留旧数据

问题是,我不能在将文件发送到那里之前,在一个循环中对文件进行tar。所以我想我可以在发送之前动态地gzip,这样它就不会将压缩文件存储在硬盘上

for i in * ; do cat i | gzip -9c | s3cmd put - s3://mybudcket/mybackups/$i.gz; done
为了测试这个命令,我在没有循环的情况下运行它,它没有发送任何东西,但也没有抱怨任何东西。到底有没有可能做到这一点

操作系统是ubuntu 12.04 s3cmd版本是1.0.0


谢谢您的建议。

允许标准输入到S3的功能于2014年2月添加到Master branch,所以我想确保您的版本比这个版本更新?版本1.0.0是2011年及之前的版本,当前版本(撰写本文时)是1.5.2。您可能需要更新您的s3cmd版本


除此之外,根据这一点,除了您的“do cat i”缺少$符号以表示它是一个变量之外,其他都应该有效。

允许stdin到S3的函数是在2014年2月添加到Master branch的,所以我想确保您的版本比这个版本更新?版本1.0.0是2011年及之前的版本,当前版本(撰写本文时)是1.5.2。您可能需要更新您的s3cmd版本

除此之外,根据这一点,除了您的“do cat i”缺少$符号外,还可以将其作为变量来表示。

或者您可以使用。Minio客户端aka
mc
是用Golang编写的,在Apache许可证版本2下发布

它实现了
mcpipe
命令,用户可以直接将数据流传输到AmazonS3
mc管道
也可以并行管道到多个目的地。在内部,mc pig将输出流化,并并行执行多部分上传

$ mc pipe
NAME:
   mc pipe - Write contents of stdin to files. Pipe is the opposite of cat command.

USAGE:
   mc pipe TARGET [TARGET...]
实例 如果您可以看到
mc
也执行
mc cat
命令:-)

或者,您可以使用。Minio客户端aka
mc
是用Golang编写的,在Apache许可证版本2下发布

它实现了
mcpipe
命令,用户可以直接将数据流传输到AmazonS3
mc管道
也可以并行管道到多个目的地。在内部,mc pig将输出流化,并并行执行多部分上传

$ mc pipe
NAME:
   mc pipe - Write contents of stdin to files. Pipe is the opposite of cat command.

USAGE:
   mc pipe TARGET [TARGET...]
实例 如果您可以看到
mc
也执行
mc cat
命令:-)