DROPBOX_ENABLED: "true":
- web (module
dropbox): liên kết, hộp thoại Dropbox của dự án, và webhook mà Dropbox gọi tới. - third-party-datastore: một dịch vụ riêng bên trong pod, xử lý hàng đợi các thay đổi cần gửi tới hoặc lấy từ Dropbox.
- document-updater: khi bật Dropbox, nó ghi các thay đổi của trình soạn thảo vào MongoDB ở chế độ nền, vài phút sau khi mọi người đã rời khỏi một dự án; chỉ khi đó các thay đổi mới được chuyển tới Dropbox.
Cấu hình
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" và StatefulSet git-bridge từ Tích hợp Git phải được thiết lập sẵn: nếu không, phần cài đặt tài khoản sẽ ẩn mục đồng bộ dự án.2
Secret
DROPBOX_TOKEN_CIPHER_PASSWORD mã hóa token Dropbox của người dùng trong MongoDB. Mọi replica phải dùng cùng một giá trị, và việc thay đổi nó sau này sẽ khiến mọi người dùng phải liên kết lại Dropbox.3
Tạo chỉ mục cơ sở dữ liệu
Chạy các lệnh tạo chỉ mục từ Tạo chỉ mục cơ sở dữ liệu một lần, trên primary của replica set:
4
Áp dụng và khởi động lại
third-party-datastore.log chỉ tồn tại khi DROPBOX_ENABLED là "true".5
Mở webhook ra internet
Dropbox phải truy cập được Sau đó thêm webhook trong Dropbox App Console như mô tả trên trang Toolkit.
${OVERLEAF_SITE_URL}/dropbox/webhook từ internet. Nếu ingress hoặc load balancer của bạn chỉ cho phép một số đường dẫn hoặc mạng từ bên ngoài, hãy cho phép đường dẫn này; đó là đường dẫn duy nhất mà Dropbox gọi tới. Hãy kiểm tra từ bên ngoài cluster:Nhiều replica
Không cần gì thêm ngoàiDROPBOX_TOKEN_CIPHER_PASSWORD dùng chung:
- Webhook có thể đến bất kỳ replica nào. Nó chỉ đưa thay đổi vào hàng đợi trong Redis.
- Mọi replica đều chạy third-party-datastore, và mỗi replica xử lý hàng đợi dùng chung. Hàng đợi của một người dùng được nhận kèm một khóa trong Redis, nên tại một thời điểm chỉ một replica gửi hoặc lấy các thay đổi của người dùng đó.
- document-updater của mọi replica ghi các dự án nhàn rỗi ở chế độ nền. Mỗi dự án được lấy từ một danh sách dùng chung trong Redis, nên nó chỉ được ghi một lần.

