AWS S3 cp无法通过

时间:2014-07-08 01:23:27

标签: amazon-web-services amazon-s3

我尝试使用AWS s3 cp CLI运行递归复制命令。我正在运行的命令在下面(我用#34替换了真正的桶名; mybucket"):

aws s3 cp s3://mybucket/NJ/Monthly/2014/06/ /home/bob/work/NJ/Monthly/2014/06/ --recursive --exclude "*" --include “monthly_summary_*” --region us-east-1

我还要格式化它以适应:

aws s3 cp s3://mybucket/NJ/Monthly/2014/06/ /home/bob/work/NJ/Monthly/2014/06/ 
--recursive --exclude "*" --include “monthly_summary_*” --region us-east-1

由于某种原因,这是行不通的。但是,它不会记录任何类型的错误或输出。有句法错误吗?

我已验证该文件与" monthly_summary _ *"匹配确实存在于该位置的存储桶中。我还验证了我可以在没有--recursive, - exclude和--include的情况下执行正常的aws s3 cp命令,只需指定文件名即可。意思是,下面的代码可以工作,但不能得到所有东西(因为它不是递归的):

aws s3 cp s3://mybucket/NJ/Monthly/2014/06/monthly_summary_201406.txt
/home/bob/work/NJ/Monthly/2014/06/monthly_summary_201406.txt --region us-east-1

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:6)

之前弄清楚了,但我想发布了我的答案。 AWS命令行工具似乎不完全支持通配符,它​​们仅支持文件扩展名。因此,“ .txt”将使用--exclude“” - 包含“ .txt”逻辑,但通配符如“monthly _ _summary.txt”或“monthly_summary_” *“ 不管用。

答案 1 :(得分:1)

我知道这个帖子已经过时了。但想要更新。即使使用monthly_summary_*,该命令现在也可以使用!

答案 2 :(得分:0)

如果这对跟随我的其他人有用,请在源和目标之间添加一些额外的空格。我一直不敢对单引号,双引号,斜杠等的每种组合运行类似的命令:

aws s3 cp /home/<username>/folder/ s3://<bucketID>/<username>/archive/ --recursive --exclude "*" --include "*.csv"

它会给我:“ aws:错误:参数太少”。单。办法。我尝试过。

所以最终在aws s3 cp help中看到了--debug选项 因此以这种方式再次运行:

aws s3 cp /home/<username>/folder/ s3://<bucketID>/<username>/archive/ --recursive --exclude "*" --include "*.csv" --debug

这是相关的调试行:

MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['s3', 'cp', 'home/<username>/folder\xc2\xa0s3://<bucketID>/<username>/archive/', '--recursive', '--exclude', '*', '--include', '*.csv', '--debug']

我不知道\xc2\xa0来自源和目标之间的哪里,但是确实有!更新了该行以添加几个额外的空格,现在它可以正常运行了:

aws s3 cp /home/<username>/folder/   s3://<bucketID>/<username>/archive/ --recursive --exclude "*" --include "*.csv"