Mặc dù câu trả lời của HÃ¥kan Lindqvist dường như là câu trả lời đúng về mặt kỹ thuật, nhưng thật không may, nó không giải quyết được vấn đề. Đồng bộ hóa (tải lên) một vài MB mất tới 30 phút do một thư mục con lớn đã bị loại trừ. Vì AWS CLI dường như không hỗ trợ chức năng mà tôi cần, nên tôi đã chuyển sang một công cụ khác thay thế: tập lệnh trình bao.
#!/bin/sh
cho tệp cục bộ trong /home/path/to/source/files/*.*
làm
aws s3 cp "$localfile" s3://path/to/bucket/
xong
đồng bộ hóa aws s3 /home/path/to/source/files/subfolder1 s3://path/to/bucket/subfolder1
đồng bộ hóa aws s3 /home/path/to/source/files/subfolder2 s3://path/to/bucket/subfolder2
đồng bộ hóa aws s3 /home/path/to/source/files/subfolder3 s3://path/to/bucket/subfolder3
# Cố tình bỏ qua thư mục con4
đồng bộ hóa aws s3 /home/path/to/source/files/subfolder5 s3://path/to/bucket/subfolder5
đồng bộ hóa aws s3 /home/path/to/source/files/subfolder6 s3://path/to/bucket/subfolder6
đồng bộ hóa aws s3 /home/path/to/source/files/subfolder7 s3://path/to/bucket/subfolder7
đồng bộ hóa aws s3 /home/path/to/source/files/subfolder8 s3://path/to/bucket/subfolder8
đồng bộ hóa aws s3 /home/path/to/source/files/subfolder9 s3://path/to/bucket/subfolder9
đồng bộ hóa aws s3/home/path/to/source/files/subfolder10 s3://path/to/bucket/subfolder10
Mặc dù cách tiếp cận này đã giải quyết được vấn đề mà tôi gặp phải trong trường hợp cụ thể của mình, nhưng nó không phải là không có nhược điểm:
- Các
aws s3 cp
lệnh luôn tải tệp lên, ngay cả khi nó không thay đổi kể từ lần trước
- Chạy
aws s3 cp
lệnh trong vòng lặp for đối với tôi có vẻ chậm hơn đáng kể so với lệnh đồng bộ aws s3
lệnh nói chung là trong trường hợp bình thường.
- Dựa trên câu trả lời của HÃ¥kan Lindqvist, tôi không chắc cách tiếp cận này sẽ giúp ích gì cho những người đang tải xuống thay vì tải lên
- Không đa nền tảng (Điều này sẽ không hoạt động trên Windows. May mắn thay cho tôi là tôi đang dùng Linux.)
Bất chấp những hạn chế, trong hoàn cảnh của tôi, điều này nhanh hơn nhiều so với việc sử dụng đồng bộ aws s3
với --loại trừ
cờ, vì vậy tôi hài lòng. Tuy nhiên, tôi hy vọng Amazon sẽ cung cấp một lựa chọn tốt hơn trong tương lai.