Apps/<your Dropbox app>/, các thay đổi trong Overleaf được gửi sang Dropbox, và các thay đổi thực hiện trong Dropbox được đưa trở lại Overleaf.
Thiết lập đồng bộ hóa Dropbox
Tạo một ứng dụng trong Dropbox App Console, đăng nhập bằng tài khoản Dropbox sẽ sở hữu ứng dụng:- Nhấp Create app, sau đó điền thông tin trên trang:
- 1. Choose an API: chọn Scoped access.
- 2. Choose the type of access you need: chọn App folder, không chọn Full Dropbox. Overleaf chỉ đồng bộ bên trong thư mục của ứng dụng.
- 3. Name your app: nhập một tên, ví dụ
Overleaf. Tên này phải là duy nhất trên Dropbox. Các dự án của mỗi người dùng sẽ xuất hiện trongApps/<name of your app>/trong Dropbox của họ, và tên này chính làDROPBOX_APP_NAMEbên dưới. - Nhấp Create app. Ứng dụng sẽ mở ở tab Settings.
- Trong tab Permissions, mục Files and folders, chọn
files.metadata.write,files.content.writevàfiles.content.read.account_info.readvàfiles.metadata.readđược chọn cùng và không thể bỏ chọn. Không chọn các quyền khác. - Nhấp Submit trong thanh ở cuối tab Permissions. Nếu không nhấp Submit, các quyền sẽ không được lưu, và Dropbox sẽ từ chối đồng bộ tệp cho những người dùng liên kết tài khoản của họ.

Dropbox App Console: các quyền cần chọn, được lưu bằng Submit
- Trong tab Settings, mục OAuth 2, nhập
${OVERLEAF_SITE_URL}/user/dropbox/oauth/callbackvào Redirect URIs, sau đó nhấp Add. Chỉ nhập URI là chưa đủ: URI chỉ được lưu khi nó hiển thị trong danh sách phía trên ô nhập.

Dropbox App Console: nhập redirect URI, sau đó nhấp Add
- Trong tab Settings, mục Webhooks, nhập
${OVERLEAF_SITE_URL}/dropbox/webhookvào Webhook URIs, sau đó cũng nhấp Add. Dropbox sẽ gọi địa chỉ này ngay lập tức để kiểm tra, vì vậy Overleaf phải đang chạy với các cài đặt bên dưới và có thể truy cập được từ internet (xem Webhook). Trạng thái của nó sẽ hiển thị Enabled khi kiểm tra thành công.
DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808. Đây phải là một proxy chuyển tiếp HTTP/HTTPS tiêu chuẩn và không được sử dụng 127.0.0.1.
Tạo các chỉ mục cơ sở dữ liệu
Hãy chạy lệnh này một lần, trước khi người dùng liên kết tài khoản Dropbox của họ. Các chỉ mục mà đồng bộ hóa Dropbox sử dụng không được tạo tự động, vì vậy nếu thiếu chúng, mỗi lần tra cứu đồng bộ sẽ phải quét toàn bộ collection. Người dùng Toolkit: chạybin/mongo. Người dùng Docker Compose: chạy docker compose exec mongo mongosh sharelatex. Sau đó dán:
dropboxEntities của tools/migrations để thay thế: 20220825160708_recreate_dropboxEntities sẽ xóa collection, làm mất trạng thái đồng bộ của mọi người dùng.Webhook
Dropbox thông báo cho Overleaf về các thay đổi trong Dropbox thông qua webhook, nhờ đó các thay đổi xuất hiện trong Overleaf chỉ trong vài giây. Webhook được gửi đến địa chỉ trang của bạn,${OVERLEAF_SITE_URL}/dropbox/webhook, không cần thêm cổng nào, nhưng Dropbox phải có thể truy cập địa chỉ này từ internet. Khi bạn thêm nó trong App Console, Dropbox sẽ kiểm tra ngay lập tức.
Nếu không có webhook, ví dụ trên một máy chủ mà Dropbox không thể truy cập, các thay đổi trong Overleaf vẫn được gửi sang Dropbox, nhưng các thay đổi trong Dropbox chỉ được đưa trở lại khi người dùng nhấp sync this project now trong hộp thoại Dropbox của trình soạn thảo.
Cách đồng bộ hoạt động
- Liên kết: khi người dùng liên kết tài khoản Dropbox, các dự án mà họ sở hữu sẽ được gửi sang Dropbox. Các dự án được chia sẻ với họ sẽ xuất hiện trong Dropbox khi có thay đổi tiếp theo.
- Từ Overleaf sang Dropbox: các tệp mới, việc đổi tên, di chuyển, xóa và đổi tên dự án được gửi ngay lập tức. Các chỉnh sửa trong trình soạn thảo được gửi khi Overleaf lưu chúng vào bộ lưu trữ, vài phút sau khi mọi người đã rời khỏi dự án. Để gửi sớm hơn, nhấp sync this project now trong hộp thoại Dropbox của trình soạn thảo (một lần mỗi phút).
- Từ Dropbox sang Overleaf: các tệp mới và tệp đã thay đổi, thư mục mới và các thao tác xóa trong thư mục dự án được áp dụng vào dự án. Một thư mục mới ở cấp cao nhất của thư mục ứng dụng sẽ trở thành một dự án mới. Xóa một thư mục dự án trong Dropbox sẽ đánh dấu dự án là đã xóa trong Overleaf.
- Xung đột: khi một tệp thay đổi ở cả hai nơi cùng lúc, thay đổi sau cùng sẽ được giữ lại. Dropbox có thể giữ phiên bản còn lại dưới dạng conflicted copy.
- Cộng tác viên: các cộng tác viên liên kết Dropbox của họ sẽ nhận được các dự án được chia sẻ với họ. Người xem chỉ có quyền đọc và người review cũng nhận được dự án, nhưng các thay đổi của họ trong Dropbox không được đồng bộ trở lại Overleaf.
- Tệp bị bỏ qua: các tệp mà Overleaf không đồng bộ, như đầu ra biên dịch (
.aux,.log, …),.DS_Storehoặc môi trường ảo Python, chỉ được giữ trong Dropbox.
Q&A
Tại sao người dùng không thể liên kết tài khoản Dropbox của họ?
Tại sao người dùng không thể liên kết tài khoản Dropbox của họ?
- Một thư mục Dropbox mà Overleaf chưa biết sẽ được ghép với một dự án theo tên, vì vậy người dùng có các dự án trùng tên sẽ được yêu cầu đổi tên chúng trước. Tên được so sánh không phân biệt chữ hoa chữ thường, và các dự án đã lưu trữ hoặc đã chuyển vào thùng rác cũng được tính.
- Một tài khoản Dropbox chỉ có thể được liên kết với một tài khoản Overleaf.
Tại sao một tài khoản Dropbox bị hủy liên kết?
Tại sao một tài khoản Dropbox bị hủy liên kết?
Tôi có thể đổi tên thư mục dự án trong Dropbox không?
Tôi có thể đổi tên thư mục dự án trong Dropbox không?
Tại sao một số thư mục dự án được đánh số, như “Thesis (1)”?
Tại sao một số thư mục dự án được đánh số, như “Thesis (1)”?
Điều gì xảy ra khi tôi xóa một thư mục dự án trong Dropbox?
Điều gì xảy ra khi tôi xóa một thư mục dự án trong Dropbox?
- Nếu không có dự án nào khác mang tên của thư mục đó, dự án sẽ bị đánh dấu là đã xóa trong Overleaf. Các tệp và lịch sử của dự án vẫn được giữ lại.
- Nếu có nhiều dự án mang tên đó, Overleaf không thể biết thư mục thuộc về dự án nào. Overleaf sẽ hủy liên kết tài khoản Dropbox và hiển thị thông báo yêu cầu đổi tên các dự án. Hãy đặt cho các dự án những tên khác nhau trước khi xóa thư mục của chúng trong Dropbox.
- Một thư mục được đánh số, như “Thesis (1)”, không khớp với tên dự án nào, vì vậy việc xóa nó không làm thay đổi dự án trong Overleaf. Nhấp sync this project now trong hộp thoại Dropbox của trình soạn thảo để gửi lại dự án sang Dropbox.
Điều gì xảy ra trong Dropbox khi tôi xóa một dự án trong Overleaf?
Điều gì xảy ra trong Dropbox khi tôi xóa một dự án trong Overleaf?
Điều gì xảy ra với các thay đổi trong Dropbox khi dự án đang được lưu trữ hoặc nằm trong thùng rác?
Điều gì xảy ra với các thay đổi trong Dropbox khi dự án đang được lưu trữ hoặc nằm trong thùng rác?
Tại sao liên kết Dropbox trong trình soạn thảo lại mở trang chủ Dropbox?
Tại sao liên kết Dropbox trong trình soạn thảo lại mở trang chủ Dropbox?
Apps/<app folder>/<project> trên dropbox.com, giống như trên Overleaf Cloud. Khi Dropbox hiển thị thư mục Apps dưới một tên đã được dịch, ví dụ 应用 trong tiếng Trung, liên kết sẽ không tìm thấy thư mục và Dropbox mở trang chủ thay thế. Hãy mở thư mục dự án từ thư mục Apps đã được dịch trong Dropbox.Tại sao một số tệp của dự án bị thiếu trong Dropbox?
Tại sao một số tệp của dự án bị thiếu trong Dropbox?

