从aws cp中排除目录

时间:2016-10-05 16:30:12

标签: amazon-web-services amazon-s3

Mac机器上的当前项目目录,包含一些文件和目录,需要复制到aws s3存储桶,但没有一些目录,其中一些是隐藏的。
我无法从the docs弄清楚如何做到这一点,因此我的猜测是:

aws> s3 cp . s3://bucketName --recursive --exclude "how to put the list of directories to exclude here"?

由于

2 个答案:

答案 0 :(得分:1)

Amazon S3并不真正支持目录。相反,目录的名称("路径")预先写在文件的名称上。

所以,想象一下这个结构:

$file = c:\temp\temp.rnd
$stream = System.IO.StreamWriter $file
$longstring = 'whatever'
$stream.Write($longstring)

如果您希望复制整个docs + foo + bar + foobar 目录,但跳过docs目录,请在bar目录中使用此命令:

docs

这告诉它复制所有文件,aws s3 cp . s3://mybucket --recursive --exclude 'bar/*' 开头的文件。

答案 1 :(得分:0)

来自s3's Use of Filters

  

可以将任意数量的这些参数传递给命令。你可以做   这通过多次提供--exclude或--include参数,   例如--include“ .txt” - 包含“ .png”。当有多个   过滤器,规则是稍后在命令中出现的过滤器   优先于命令中较早出现的过滤器。

因此,只需为要跳过的每个目录指定一个--exclude选项。