Làm thế nào để quản lý Amazon S3 từ dòng lệnh
Amazon S3 là một nơi tốt để sao lưu và lưu trữ các tệp của bạn với giá rẻ trên đám mây. Trong khi một số người sử dụng nó để lưu trữ dữ liệu cá nhân của họ, có những người khác sử dụng nó để lưu trữ hình ảnh và tập lệnh cho trang web của họ, và thậm chí sử dụng nó như là một CDN. Trên máy tính của bạn, bạn có thể dễ dàng truy cập và quản lý tài khoản Amazon S3 của mình bằng các ứng dụng như S3Fox, CloudBerry, DragonDisk, v.v., nhưng nếu bạn cần truy cập nó từ dòng lệnh thì sao? Đây là nơi S3cmd có ích.
S3cmd là một công cụ dòng lệnh miễn phí để tải lên, truy xuất và quản lý dữ liệu trong Amazon S3. Ngoài S3, nó cũng hỗ trợ các nhà cung cấp dịch vụ lưu trữ đám mây khác sử dụng giao thức S3, chẳng hạn như Google Cloud Storage hoặc DreamHost DreamObjects. Việc sử dụng tốt nhất cho công cụ này là trên máy chủ từ xa, nơi tất cả mọi thứ được thực hiện trên dòng lệnh. Ngoài ra, bạn cũng có thể sử dụng nó để tạo tập lệnh batch và tự động sao lưu sang S3.
S3cmd được viết bằng Python, vì vậy nó chỉ là về hỗ trợ trong tất cả các hệ điều hành, miễn là Python được cài đặt.
Cài đặt
S3cmd được tìm thấy trong hầu hết các kho lưu trữ Linux. Trong Debian / Ubuntu, hoặc bất kỳ distro dựa trên apt nào khác, bạn có thể cài đặt S3cmd bằng lệnh:
sudo apt-get cài đặt s3cmd
Đối với Fedora, Centos hoặc bất kỳ bản phát hành dựa trên yum nào khác:
sudo yum cài đặt s3cmd
Ngoài ra, bạn có thể tải xuống mã nguồn, giải nén gói và chạy trình cài đặt:
sudo python setup.py cài đặt
Bắt đầu
Trước khi bắt đầu, bạn cần có sẵn các khóa Bí mật và Truy cập của Amazon S3. Bạn có thể định vị các khóa Access và Secret trong Amazon Management Console.
Để bắt đầu, hãy mở terminal và gõ:
s3cmd --configure
Đầu tiên nó sẽ nhắc bạn nhập các khóa Truy cập và Bí mật của bạn.
Tiếp theo, bạn phải nhập khóa mã hóa và đường dẫn đến chương trình GPG.
Sau khi khóa mã hóa là lời nhắc cho việc sử dụng giao thức HTTPS. Tùy chọn mặc định là “Không”, nhưng bạn có thể đặt thành “Có” để có kết nối an toàn hơn với Amazon S3. Lưu ý rằng việc sử dụng giao thức HTTPS sẽ làm chậm tốc độ truyền và không thể sử dụng nếu bạn đang sử dụng proxy.
Một khi bạn đã cấu hình và kiểm tra các thiết lập, bạn có thể tiến hành sử dụng S3cmd. Nếu bạn cần thay đổi cài đặt, bạn có thể chỉnh sửa tệp .s3cfg trong thư mục Nhà của bạn hoặc chạy lại lệnh s3cmd --configure
.
Sử dụng
Đầu tiên, để xem các thùng trong tài khoản S3 của bạn, bạn có thể sử dụng ls
.
s3cmd ls
Để tạo một nhóm, hãy sử dụng lệnh mb
:
s3cmd mb s3: // test-s3cmd-bucket
Lưu ý rằng bạn sẽ cần đặt tiền tố tên nhóm bằng “s3: //”
Để liệt kê nội dung trong một nhóm, hãy sử dụng ls
cùng với tên nhóm. Ví dụ:
s3cmd ls s3: // test-s3cmd-bucket
Đang tải tệp lên thùng
Cách dễ nhất để tải lên một tệp thông qua S3cmd là với lệnh put
. Ví dụ:
s3cmd đặt text.txt s3: // test-s3cmd-bucket
Ngoài ra, bạn có thể sử dụng tham số --encrypt
để mã hóa tệp trước khi tải lên S3.
s3cmd đặt --encrypt text.txt s3: // test-s3cmd-bucket
Quyền mặc định cho lệnh put
là riêng tư, có nghĩa là tập tin chỉ có thể được bạn xem. Nếu bạn cần tệp có thể truy cập công khai, bạn có thể thêm tham số --acl-public
s3cmd đặt --acl-public text.txt s3: // test-s3cmd-bucket
Để kiểm soát chi tiết hơn, hãy sử dụng tham số --acl-grant=PERMISSION:EMAIL or USER_CANONICAL_ID
. Ví dụ:
s3cmd đặt --acl-grant = đã đọc: [email protected] text.txt s3: // test-s3cmd-bucket
“PERMISSION” có thể là “read”, “write”, “read_acp”, “write_acp, ” “full_control, ” “tất cả.”
Đang truy xuất tệp từ thùng
Để lấy một tập tin, sử dụng lệnh get
.
s3cmd nhận được s3: //test-s3cmd-bucket/text.txt text.txt
Để tải xuống tất cả các tệp trong nhóm, chỉ cần nối tham số --recursive
.
s3cmd nhận - s3: // test-s3cmd-bucket
Xóa tệp khỏi nhóm
Lệnh xóa cho s3cmd chỉ đơn giản là del
. Ví dụ:
s3cmd del s3: //test-s3cmd-bucket/text.txt
Bạn cũng có thể sử dụng tham số --recursive
để xóa tất cả các tệp trong nhóm.
s3cmd del --recursive s3: // test-s3cmd-bucket
Để biết thêm các lệnh S3cmd, hãy xem hướng dẫn sử dụng của nó tại đây.
Sử dụng nâng cao: Đồng bộ hóa một thư mục với S3
Giả sử bạn lưu trữ tất cả các tệp quan trọng trong một thư mục và bạn muốn nó được đồng bộ hóa với S3. S3cmd đi kèm với lệnh sync
có thể đồng bộ hóa thư mục cục bộ với đích đến từ xa.
đồng bộ hóa s3cmd - xóa xóa ~ / SecretFolder s3: // my-secret-bucket /
Tất cả những gì bạn phải làm là tạo một cronjob để chạy lệnh đồng bộ thường xuyên.
1. Mở crontab.
crontab -e
2. Thêm dòng sau vào cuối crontab. Lưu và thoát khỏi crontab.
Đồng bộ hóa 5 * * * * s3cmd - xóa xóa ~ / SecretFolder s3: // my-secret-bucket /
Đó là nó. Bây giờ hệ thống của bạn sẽ đồng bộ thư mục bí mật với S3 sau 5 phút. Bạn có thể thay đổi giá trị để chạy lệnh đồng bộ hóa tại khoảng thời gian bạn muốn. Mọi tệp bạn đã xóa khỏi thư mục bí mật cũng sẽ bị xóa khỏi S3.
Phần kết luận
Đối với những người cần làm việc trong môi trường dòng lệnh, S3cmd thực sự là một công cụ tuyệt vời để bạn truy cập và quản lý Amazon S3 từ dòng lệnh. Không chỉ dễ sử dụng, nó còn đi kèm với rất nhiều lựa chọn cho nhu cầu sử dụng và viết kịch bản nâng cao.