แม้ว่าคำตอบของ HÃ¥kan Lindqvist จะเป็นคำตอบที่ถูกต้องทางเทคนิค แต่น่าเสียดายที่ไม่ได้แก้ปัญหา การซิงค์ (อัปโหลด) ขนาดไม่กี่ MB ใช้เวลามากถึง 30 นาที เนื่องจากโฟลเดอร์ย่อยขนาดใหญ่ที่ถูกแยกออกไป เนื่องจาก AWS CLI ดูเหมือนจะไม่รองรับฟังก์ชันที่ฉันต้องการโดยกำเนิด ฉันจึงหันไปใช้เครื่องมืออื่นแทน: เชลล์สคริปต์
#!/bin/sh
สำหรับ localfile ใน /home/path/to/source/files/*.*
ทำ
aws s3 cp "$localfile" s3://path/to/bucket/
เสร็จแล้ว
aws s3 ซิงค์ /home/path/to/source/files/subfolder1 s3://path/to/bucket/subfolder1
aws s3 ซิงค์ /home/path/to/source/files/subfolder2 s3://path/to/bucket/subfolder2
aws s3 ซิงค์ /home/path/to/source/files/subfolder3 s3://path/to/bucket/subfolder3
# จงใจข้ามโฟลเดอร์ย่อย 4
aws s3 ซิงค์ /home/path/to/source/files/subfolder5 s3://path/to/bucket/subfolder5
aws s3 ซิงค์ /home/path/to/source/files/subfolder6 s3://path/to/bucket/subfolder6
aws s3 ซิงค์ /home/path/to/source/files/subfolder7 s3://path/to/bucket/subfolder7
aws s3 ซิงค์ /home/path/to/source/files/subfolder8 s3://path/to/bucket/subfolder8
aws s3 ซิงค์ /home/path/to/source/files/subfolder9 s3://path/to/bucket/subfolder9
aws s3 ซิงค์ /home/path/to/source/files/subfolder10 s3://path/to/bucket/subfolder10
แม้ว่าวิธีการนี้จะแก้ปัญหาที่ฉันมีในสถานการณ์เฉพาะของฉัน แต่ก็ไม่มีข้อด้อย:
- เดอะ
aws s3 ซีพี
คำสั่งจะอัปโหลดไฟล์เสมอ แม้ว่าจะไม่ได้เปลี่ยนแปลงจากครั้งล่าสุดก็ตาม
- วิ่ง
aws s3 ซีพี
คำสั่งใน for loop ดูเหมือนจะช้ากว่าคำสั่ง aws s3 ซิงค์
คำสั่งโดยทั่วไปอยู่ภายใต้สถานการณ์ปกติ
- จากคำตอบของ HÃ¥kan Lindqvist ฉันไม่แน่ใจว่าแนวทางนี้จะทำอะไรเพื่อช่วยคนที่ดาวน์โหลดมากกว่าอัปโหลด
- ไม่ข้ามแพลตฟอร์ม (สิ่งนี้ใช้ไม่ได้กับ Windows โชคดีสำหรับฉัน ฉันใช้ Linux)
แม้จะมีข้อเสีย แต่ในสถานการณ์ของฉันสิ่งนี้เร็วกว่าการใช้มากกว่าลำดับความสำคัญ aws s3 ซิงค์
กับ --ไม่รวม
ฟันธงว่างั้นฉันพอใจ ฉันหวังว่า Amazon จะมีตัวเลือกที่ดีกว่าในอนาคต