Saya mengalami masalah saat menggunakan *di AWS CLI untuk memilih subset file dari keranjang tertentu.
Menambahkan *ke jalur seperti ini sepertinya tidak berhasil
aws s3 cp s3://data/2016-08* .
Jawaban:
Untuk mendownload beberapa file dari ember aws ke direktori Anda saat ini, Anda dapat menggunakan recursive, excludedan includebendera seperti ini:
aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"
Untuk info lebih lanjut tentang cara menggunakan filter ini: http://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters
syncuntuk efek serupa, yang rekursif secara default:aws s3 sync s3://data/ . --exclude "*" --include "2016-08*"
Urutan Parameter Penting
Kecualikan dan penyertaan harus digunakan dalam urutan tertentu, Kami harus mengecualikan terlebih dahulu, lalu menyertakan. Kebalikannya tidak akan berhasil.
aws s3 cp s3://data/ . --recursive --include "2016-08*" --exclude "*"
Ini akan gagal karena urutan parameter penting dalam kasus ini. Termasuk dikecualikan oleh *
aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"`
Yang ini akan berfungsi karena kami mengecualikan semuanya tetapi kemudian kami telah memasukkan direktori tertentu.
Oke saya harus katakan contoh salah dan harus diperbaiki sebagai berikut:
aws s3 cp . s3://data/ --recursive --exclude "*" --include "2006-08*" --exclude "*/*"
The .kebutuhan untuk menjadi benar setelah cp. Yang terakhir --excludeadalah memastikan bahwa tidak ada yang diambil dari subdirektori mana pun yang diambil oleh --recursive(mengetahui bahwa salah satunya karena kesalahan ...)
Ini akan berhasil bagi siapa pun yang berjuang dengan ini pada saat mereka tiba di sini.
--exclude "*"ini bukanlah kesalahan ketik. Jika Anda tidak menambahkannya, penyertaan akan cocok dengan apa pun . Sesuai dokumentasi: Perhatikan bahwa, secara default, semua file disertakan. Ini berarti bahwa hanya menyediakan filter --include tidak akan mengubah file apa yang ditransfer. --include hanya akan memasukkan kembali file yang telah dikecualikan dari filter --exclude. Jika Anda hanya ingin mengupload file dengan ekstensi tertentu, Anda harus mengecualikan semua file terlebih dahulu, lalu memasukkan kembali file dengan ekstensi tertentu.