Câu trả lời:
Để tải nhiều file từ một xô AWS vào thư mục hiện tại của bạn, bạn có thể sử dụng recursive
, exclude
và include
lá cờ như thế này:
aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"
Để biết thêm thông tin về cách sử dụng các bộ lọc này: http://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters
sync
cho một hiệu ứng tương tự, theo mặc định là đệ quy:aws s3 sync s3://data/ . --exclude "*" --include "2016-08*"
Thứ tự của các vấn đề tham số
Loại trừ và bao gồm nên được sử dụng theo một thứ tự cụ thể, Đầu tiên chúng ta phải loại trừ và sau đó bao gồm. Phó bản của nó sẽ không thành công.
aws s3 cp s3://data/ . --recursive --include "2016-08*" --exclude "*"
Điều này sẽ không thành công vì thứ tự của các tham số thay đổi trong trường hợp này. Bao gồm bị loại trừ bởi *
aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"`
Cái này sẽ hoạt động vì chúng tôi đã loại trừ mọi thứ nhưng sau đó chúng tôi đã đưa vào thư mục cụ thể.
--exclude "*"
không phải là lỗi đánh máy. Nếu bạn không thêm nó, bao gồm sẽ khớp với bất kỳ thứ gì . Theo tài liệu: Lưu ý rằng, theo mặc định, tất cả các tệp đều được bao gồm. Điều này có nghĩa là chỉ cung cấp một bộ lọc - bao gồm sẽ không thay đổi những tệp được chuyển. --include sẽ chỉ bao gồm lại các tệp đã bị loại trừ khỏi bộ lọc --exclude. Nếu bạn chỉ muốn tải lên các tệp có phần mở rộng cụ thể, trước tiên bạn cần phải loại trừ tất cả các tệp, sau đó bao gồm lại các tệp có phần mở rộng cụ thể.