Tính năng này được phát triển bởi ayaka-notes/ayakaleaf-pro. Tính năng được giới thiệu từ v6.4.0 trở đi và vẫn đang ở trạng thái beta. Nếu gặp bất kỳ vấn đề nào, chúng tôi rất mong nhận được phản hồi của bạn.
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.
config/variables.env
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.
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ọ?
- Các dự án được ghép với các thư mục Dropbox theo tên, vì vậy người dùng có hai dự án trùng tên sẽ được yêu cầu đổi tên một trong hai trước.
- 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?
Trả lời: Overleaf hủy liên kết một tài khoản Dropbox khi Dropbox từ chối token của nó (ví dụ sau khi người dùng xóa ứng dụng trong Dropbox), khi Dropbox đã đầy, hoặc khi Dropbox tạm ngưng tài khoản. Người dùng có thể liên kết lại sau khi vấn đề được giải quyế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?
Trả lời: Vui lòng đổi tên dự án trong Overleaf thay vì làm vậy. Đối với Overleaf, việc đổi tên thư mục trong Dropbox tương đương với xóa thư mục dự án và tạo một thư mục mới, vì vậy dự án cũ sẽ bị đánh dấu là đã xóa và một dự án mới được tạo từ các tệp.

