2017-03-12 61 views
0

我試圖使用s4cmd從使用通配符支持的通配符複製AWS S3存儲桶中的文件。嘗試從Amazon S3複製或同步時無法使用文件名通配符

例如,我想同步所有AWS S3日誌文件開始2017-03-12我的本地當前目錄:

s4cmd sync s3://myapp-logs/prod/2017-03-12-19* . 

這導致所有文件被複制和通配符顯然被忽略了:

s3://myapp-logs/prod/2015-10-08-19-24-42-92BBBE9DA93917D1 => ./prod/2015-10-08-19-24-42-92BBBE9DA93917D1 
s3://myapp-logs/prod/2015-10-08-19-30-09-BE8D5466FBB5DFD1 => ./prod/2015-10-08-19-30-09-BE8D5466FBB5DFD1 
... 

無論通配符的格式如何,我都可以重現此失敗。

預期唯一的一次通配符的工作就是當我使用cp命令,例如:

s4cmd cp s3://myapp-logs/prod/2017-03-12-19* // Note that cp doesn't support copying to a local directory 

s4cmd cp s3://mybucket/mystuff/N*.jpg s3://mybuckettest/ 
+0

爲什麼's4cmd'?你不能用'aws s3' CLI達到同樣的效果嗎? – helloV

回答

1

不能使用aws s3 CLI?

aws s3 sync s3://myapp-logs . --exclude "*" --include "*prod/2017-03-12-19*" 

應該工作。如果它沒有看到use-of-exclude-and-include-filters並修改該命令。

+0

我現在在aws s3 cli上使用s4cmd(和s3cmd)的原因是因爲s4cmd提供了一些add'l功能,例如改進了同步(通過s4cmd dsync),並且我試圖使用更少數量的工具。 *然而,*你確實提醒我,'aws s3'通過過濾器實現了通配符功能,所以謝謝!順便說一下,應該'aws s3 sync s3:// myapp-logs。 - 排除「*」 - 包括「prod/2017-03-12-19 *」'相當於'aws s3 sync s3:// myapp-logs/prod。 - 排除「*」 - 包括「2017-03-12-19 *」'? – Howiecamp

相關問題