Tải lên, tải về và quản lý dữ liệu trên Object Storage

Bài này dành cho quý Khách hàng đã lấy được khoá kết nối và tạo xong bucket đầu tiên. Nếu chưa, xem bài Bắt đầu với Object Storage Cloudzone trước.

Thông tin kết nối dùng chung cho mọi công cụ trong bài:

Thông tin Giá trị
Endpoint https://object.cloudzone.vn
Kiểu dịch vụ S3 tương thích, nền Ceph
Access Key, Secret Key lấy trong Portal Cloudzone, mục dịch vụ, bấm Khoá kết nối

1. Chọn công cụ nào

Công cụ Hợp với Hệ điều hành
S3 Browser Người quen giao diện, thao tác thủ công Windows
WinSCP Đã dùng WinSCP cho SFTP, muốn thêm kho S3 vào cùng một chỗ Windows
Cyberduck Giao diện, có bản macOS Windows, macOS
mc Dòng lệnh gọn, câu lệnh dễ đọc Linux, Windows, macOS
aws-cli Đã quen lệnh AWS, cần tính năng đầy đủ Linux, Windows, macOS
s3cmd Kịch bản shell đơn giản, đồng bộ thư mục Linux
rclone Sao lưu định kỳ, đồng bộ hai chiều, mã hoá trước khi gửi Linux, Windows, macOS

Dùng cho sao lưu tự động hằng đêm thì rclone là lựa chọn phù hợp nhất, đã có bài hướng dẫn riêng trên trang Cloudzone. Bài này tập trung vào thao tác hằng ngày.

2. WinSCP: thêm kho S3 vào cùng chỗ với SFTP

  1. Mở WinSCP, bấm New Session.
  2. Ô File protocol chọn Amazon S3.
  3. Điền:
Ô Điền
Host name object.cloudzone.vn
Port number 443
Access key ID khoá lấy trong Portal
Secret access key khoá lấy trong Portal
  1. Bấm Advanced, vào Environment, S3. Ô URL style chọn Path.
  2. Bấm Save, đặt tên phiên, rồi Login.

Mục 4 là chỗ hay bị bỏ qua. Để Virtual Host thì WinSCP vẫn kết nối được, nhưng chọn Path thì ổn định hơn với tên bucket có dấu gạch ngang.

Sau khi vào, khung bên phải là danh sách bucket. Kéo thả tệp giữa hai khung như quý Khách hàng vẫn làm với SFTP.

3. Cyberduck

  1. Bấm Open Connection, chọn Amazon S3 trong danh sách trên cùng.
  2. Ô Server sửa thành object.cloudzone.vn, Port 443.
  3. Điền Access Key ID và Secret Access Key.
  4. Bấm Connect.

Cyberduck ghi nhớ kết nối trong Bookmarks, lần sau mở thẳng.

4. mc: các lệnh dùng hằng ngày

Khai kết nối một lần (xem bài Bắt đầu nếu chưa làm):

mc alias set cloudzone https://object.cloudzone.vn KHOA_TRUY_CAP KHOA_BI_MAT
chmod 600 ~/.mc/config.json

Những lệnh dùng nhiều nhất:

# Xem danh sách bucket
mc ls cloudzone

# Xem trong một bucket, kèm kích thước
mc ls cloudzone/abc-sao-luu-web

# Xem cả cây thư mục bên trong
mc ls --recursive cloudzone/abc-sao-luu-web

# Tải một tệp lên
mc cp ./bao-cao.pdf cloudzone/abc-sao-luu-web/tai-lieu/

# Tải cả thư mục lên
mc cp --recursive ./tai-lieu cloudzone/abc-sao-luu-web/

# Tải về
mc cp cloudzone/abc-sao-luu-web/tai-lieu/bao-cao.pdf ./

# Tải cả thư mục về
mc cp --recursive cloudzone/abc-sao-luu-web/tai-lieu ./khoi-phuc/

# Xoá một tệp
mc rm cloudzone/abc-sao-luu-web/tai-lieu/bao-cao.pdf

# Xem dung lượng đang dùng của một bucket
mc du cloudzone/abc-sao-luu-web

# Xem dung lượng toàn bộ các bucket
mc du cloudzone

Đồng bộ một thư mục, cẩn thận chỗ này

# Chạy thử, in ra những gì sẽ làm mà không đụng vào dữ liệu
mc mirror --dry-run ./tai-lieu cloudzone/abc-sao-luu-web/tai-lieu

# Chạy thật
mc mirror ./tai-lieu cloudzone/abc-sao-luu-web/tai-lieu

mc mirror để nguyên như trên thì chỉ thêm và cập nhật, không xoá. Thêm --remove thì nó xoá trên kho những tệp mà nguồn không còn. Với bản sao lưu, --remove nghĩa là một lần xoá nhầm ở nguồn sẽ lan sang cả bản sao lưu. Chạy --dry-run trước mỗi lần sửa câu lệnh.

5. aws-cli

Cài trên Ubuntu hoặc Debian:

sudo apt update
sudo apt install -y awscli
aws --version

Khai khoá:

aws configure
# AWS Access Key ID     : khoá lấy trong Portal
# AWS Secret Access Key : khoá lấy trong Portal
# Default region name   : us-east-1
# Default output format : json

Ô region là ô bắt buộc của aws-cli, nhưng kho không kiểm giá trị này, nên điền us-east-1 cho đúng thông lệ là xong. Giá trị khác cũng chạy.

Mọi lệnh đều phải kèm --endpoint-url, nếu không aws sẽ gọi sang Amazon:

aws --endpoint-url https://object.cloudzone.vn s3 ls
aws --endpoint-url https://object.cloudzone.vn s3 ls s3://abc-sao-luu-web/
aws --endpoint-url https://object.cloudzone.vn s3 cp ./bao-cao.pdf s3://abc-sao-luu-web/
aws --endpoint-url https://object.cloudzone.vn s3 cp --recursive ./tai-lieu s3://abc-sao-luu-web/tai-lieu/
aws --endpoint-url https://object.cloudzone.vn s3 rm s3://abc-sao-luu-web/bao-cao.pdf

Gõ --endpoint-url mỗi lần thì mỏi tay. Đặt một bí danh trong ~/.bashrc:

echo "alias s3cz='aws --endpoint-url https://object.cloudzone.vn s3'" >> ~/.bashrc
source ~/.bashrc
s3cz ls

6. s3cmd

sudo apt install -y s3cmd

Viết thẳng tệp cấu hình, nhanh hơn chạy s3cmd --configure. Thay hai dòng khoá bằng giá trị lấy trong Portal:

[default]
access_key = KHOA_TRUY_CAP
secret_key = KHOA_BI_MAT
host_base = object.cloudzone.vn
host_bucket = %(bucket)s.object.cloudzone.vn
use_https = True
signature_v2 = False

Lưu thành ~/.s3cfg rồi siết quyền:

chmod 600 ~/.s3cfg

Các lệnh thường dùng:

s3cmd ls
s3cmd ls s3://abc-sao-luu-web/
s3cmd put bao-cao.pdf s3://abc-sao-luu-web/
s3cmd put --recursive tai-lieu/ s3://abc-sao-luu-web/tai-lieu/
s3cmd get s3://abc-sao-luu-web/bao-cao.pdf
s3cmd del s3://abc-sao-luu-web/bao-cao.pdf
s3cmd du s3://abc-sao-luu-web

7. Chia sẻ một tệp cho người ngoài, có thời hạn

Dữ liệu trong bucket mặc định là riêng tư, người ngoài mở địa chỉ tệp sẽ bị từ chối. Muốn gửi một tệp cho đối tác mà không mở công khai cả bucket, quý Khách hàng tạo một địa chỉ có thời hạn.

# Dia chi song 7 ngay
mc share download --expire 168h cloudzone/abc-sao-luu-web/tai-lieu/bao-cao.pdf

Với aws-cli:

aws --endpoint-url https://object.cloudzone.vn s3 presign \
    s3://abc-sao-luu-web/tai-lieu/bao-cao.pdf --expires-in 604800

Lệnh in ra một địa chỉ dài. Ai có địa chỉ đó thì tải được tệp cho tới khi hết hạn, không cần khoá. Hết hạn thì địa chỉ không dùng được nữa.

Địa chỉ này không đặt mật khẩu. Nó là chìa khoá dạng đường dẫn, nên gửi đúng người, và đặt thời hạn ngắn nhất đủ dùng. Cần thu hồi sớm hơn hạn thì cách chắc chắn là chuyển tệp sang tên khác.

S3 Browser làm được việc này qua chuột phải vào tệp, chọn Generate Web URL, đặt thời hạn ở ô Expires.

8. Theo dõi dung lượng và băng thông

Dung lượng đang dùng xem được bằng mc du cloudzone, hoặc xem trong Portal Cloudzone ở mục dịch vụ của gói.

Băng thông tính cả chiều tải lên và chiều tải xuống. Điểm này hay bị bỏ sót khi đặt gói: một lượt sao lưu hằng đêm cũng nằm trong hạn mức băng thông, không chỉ lượt khách tải về. Thư mục 50 GB đẩy lại toàn bộ mỗi ngày thì một tháng dùng khoảng 1,5 TB băng thông.

Hai cách giảm:

  • Dùng lệnh chỉ đẩy phần thay đổi (mc mirror, rclone copy) thay vì đẩy lại toàn bộ.
  • Nén trước khi đẩy, với dữ liệu nén được như tệp văn bản hay kết xuất cơ sở dữ liệu.

Gần hết dung lượng thì mua thêm addon ngay trong Portal, hoặc nâng lên gói lớn hơn. Cả hai cách đều giữ nguyên dữ liệu và khoá truy cập, không phải cấu hình lại công cụ.

9. Thói quen nên có

Thói quen Vì sao
Chạy --dry-run trước mỗi lần sửa câu lệnh đồng bộ Một dấu gạch chéo đặt sai chỗ làm dữ liệu lên sai nhánh, hoặc xoá nhầm
Siết quyền tệp cấu hình về 600 Tệp đó chứa khoá. Máy chủ nhiều người dùng thì đây là chỗ rò rõ nhất
Mỗi việc một bucket Về sau cần xoá riêng hay phân quyền riêng thì không phải gỡ rối
Mỗi tháng tải thử một phần về và mở ra xem Tệp tải về được không có nghĩa là nội dung bên trong dùng được
Không đặt khoá vào mã nguồn Đưa lên git một lần là nằm trong lịch sử mãi, xoá tệp không xoá được lịch sử

10. Câu hỏi thường gặp

Tôi tải lên tệp 20 GB có được không? Được. Các công cụ trong bài đều tự cắt tệp lớn thành nhiều phần rồi ghép lại, quý Khách hàng không phải làm gì thêm. Đường truyền ngắt giữa lúc tải thì chạy lại lệnh, công cụ tiếp tục phần còn thiếu.

Vì sao tệp tải lên rồi mà mở địa chỉ web báo từ chối? Vì bucket là riêng tư, đúng như thiết kế. Muốn gửi cho người ngoài thì dùng địa chỉ có thời hạn ở mục 7.

Có xem được danh sách tệp trên giao diện web không? Quý Khách hàng dùng một trong các phần mềm ở mục 1. Hệ thống kho không có trang quản lý dạng web riêng cho khách hàng.

Tôi xoá nhầm tệp, lấy lại được không? Xoá trong Object Storage là xoá thật, không có thùng rác. Đây là lý do bản sao lưu quan trọng nên dùng lệnh chỉ thêm và cập nhật, đừng dùng lệnh có xoá theo nguồn.

Phần mềm sao lưu của tôi nói được S3, kết nối được chứ? Được, miễn là nó cho khai endpoint riêng. Khai https://object.cloudzone.vn kèm cặp khoá lấy trong Portal, chọn kiểu dịch vụ S3 tương thích.

Hướng dẫn này có ích cho bạn?

Cần đặt dịch vụ? Xem cấu hình và giá tại bảng giá Cloudzone - đặt gói trực tuyến, nhận dịch vụ ngay sau thanh toán. Cần tư vấn, mở khung chat ở góc phải màn hình.

Hướng dẫn liên quan