2014-10-12 16 views
29

Tôi đang suy nghĩ về việc triển khai lại trang web tĩnh của mình lên Amazon S3. Tôi cần phải tự động hóa việc triển khai vì vậy tôi đã tìm kiếm một API cho các nhiệm vụ như vậy. Tôi hơi bối rối về các tùy chọn khác nhau.Sự khác biệt giữa s3cmd, boto và AWS CLI

Câu hỏi: Sự khác biệt giữa s3cmd, thư viện Python boto và AWS CLI là gì?

Trả lời

34

s3cmdAWS CLI là cả hai công cụ dòng lệnh. Chúng rất phù hợp nếu bạn muốn viết kịch bản triển khai của mình thông qua kịch bản lệnh shell (ví dụ: bash).

AWS CLI cung cấp cho bạn khả năng sao chép tệp đơn giản thông qua lệnh "s3", đủ để triển khai một trang web tĩnh đến một thùng S3. Nó cũng có một số lợi thế nhỏ như được cài đặt sẵn trên Amazon Linux, nếu đó là nơi bạn đang làm việc (nó cũng là easily installable through pip).

Một lệnh AWS CLI rằng có thể thích hợp để đồng bộ hóa một thư mục địa phương để một xô S3:

$ aws s3 sync . s3://mybucket 

Full tài liệu về lệnh này: http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

Edit: Như đã đề cập bởi @ simon- buchan trong một bình luận, lệnh aws s3api cho phép bạn truy cập vào API S3 hoàn chỉnh, nhưng giao diện của nó là "thô" hơn.

s3cmd hỗ trợ mọi thứ AWS CLI, cộng thêm một số chức năng mở rộng hơn ở trên cùng, mặc dù tôi không chắc bạn sẽ yêu cầu bất kỳ chức năng nào cho mục đích của bạn. Bạn có thể xem tất cả các lệnh của nó tại đây: http://s3tools.org/usage

Việc cài đặt s3cmd có thể liên quan hơn một chút vì nó dường như không phải là gói cho nó trong bất kỳ bản chính nào.

boto là thư viện Python và trên thực tế là SDK Python AWS chính thức. AWS CLI, cũng được viết bằng Python, thực sự sử dụng một phần của thư viện boto (botocore). Nó sẽ rất phù hợp nếu bạn đang viết các kịch bản triển khai của mình bằng Python. Có các SDK chính thức cho các ngôn ngữ phổ biến khác (Java, PHP, v.v.) nếu bạn muốn: http://aws.amazon.com/tools/

Hình thức truy cập tới S3 là thông qua REST API của AWS. Mọi thứ khác được xây dựng trên nó tại một số điểm. Nếu bạn cảm thấy mạo hiểm, đây là tài liệu API REST REST của S3: http://docs.aws.amazon.com/AmazonS3/latest/API/APIRest.html

+1

Có bất kỳ điểm chuẩn nào so sánh tốc độ truyền dữ liệu bằng s3cmd với awscli không? – sandeepkunkunuru

+0

Có các gói chính thức 's3cmd' cho Ubuntu: http://packages.ubuntu.com/trusty/s3cmd – Daniel

+0

Ngoài ra, hãy kiểm tra s4cmd. Mặc dù nó không có tất cả các tính năng của s3cmd, hiệu năng của nó chắc chắn tốt hơn các kết nối băng thông cao (ví dụ: EC2), vì nó đa luồng các kết nối. https://github.com/bloomreach/s4cmd – jlevy

Các vấn đề liên quan