Bỏ qua

Lưu trữ tệp phương tiện trên S3

Thay vì lưu trữ các tệp phương tiện của cây gia đình trên cùng một máy chủ với cơ sở dữ liệu Gramps, chúng cũng có thể được lưu trữ trên Amazon S3 hoặc một dịch vụ lưu trữ đối tượng tương thích API khác. Điều này giảm đáng kể yêu cầu về lưu trữ và băng thông cho máy chủ Web Gramps.

Chuẩn bị thông tin xác thực

Trong tài khoản AWS (hoặc dịch vụ lưu trữ đối tượng khác) của bạn, lấy access key IDsecret access key (bạn có thể muốn tạo một người dùng riêng với chính sách bảo mật chỉ cho phép truy cập vào S3).

Tải lên tệp phương tiện

Để tải lên các tệp phương tiện hiện có của bạn lên S3, trên Linux bạn có thể sử dụng một cài đặt Gramps cục bộ với Addon Tải lên Phương tiện S3, mà bạn có thể cài đặt trực tiếp từ máy tính để bàn Gramps. Tuy nhiên, một số cấu hình bổ sung là cần thiết.

Addon sử dụng thư viện Python boto3 ở phía sau. Bạn cần cài đặt nó trước với

python3 -m pip install boto3

Trên dòng lệnh, xuất access key ID và secret key vào các biến môi trường thích hợp:

export AWS_ACCESS_KEY_ID=my_access_key_id
export AWS_SECRET_ACCESS_KEY=my_secret_access_key

Bây giờ, bạn có thể bắt đầu trình tải lên bằng cách chạy lệnh sau,

gramps -O "My Family Tree" -a tool \
    -p "name=s3uploader,bucket_name=my_bucket_name"

thay thế "My Family Tree" bằng tên của cây gia đình của bạn và my_bucket_name bằng tên đầy đủ của bucket S3 của bạn. Bạn sẽ cần một bucket S3 dành riêng cho phiên bản Gramps Web của bạn. Nếu bucket chưa tồn tại, Addon Tải lên S3 sẽ cố gắng tạo nó.

Cấu hình Gramps Web

Để sử dụng bucket S3 mới làm nguồn phương tiện cho Gramps Web, chỉ cần đặt tùy chọn cấu hình MEDIA_BASE_DIR tùy chọn cấu hình thành s3://my_bucket_name.

Khi sử dụng Docker Compose, tùy chọn dễ nhất là thêm tất cả các biến môi trường vào khối env:

env:
  AWS_ACCESS_KEY_ID: my_access_key_id
  AWS_SECRET_ACCESS_KEY: my_secret_access_key
  MEDIA_BASE_DIR: s3://my_bucket_name
  AWS_DEFAULT_REGION: eu-central-1

Nếu bạn muốn sử dụng một dịch vụ lưu trữ đối tượng tương thích S3 khác ngoài AWS (ví dụ: GCP hoặc để thử nghiệm cục bộ), hãy đặt biến môi trường AWS_ENDPOINT_URL.

Đồng bộ hóa tệp phương tiện

Để giữ cho các tệp phương tiện đồng bộ giữa một cài đặt Gramps cục bộ và các tệp phương tiện Gramps Web được lưu trữ trên S3, Addon Đồng bộ hóa Gramps Web hỗ trợ đồng bộ hóa tệp thông qua Web API.