Di chuyển sang S3
Các hướng dẫn này dành cho v5.x trở về sau. Nếu bạn làm theo hướng dẫn này cho một phiên bản cũ hơn, vui lòng dùng
sharelatex thay vì overleaf trong tên đường dẫn và tiền tố SHARELATEX_ thay vì OVERLEAF_ cho các biến môi trường. Đối với v6 trở về sau, hãy bỏ qua các lệnh user_files cũ (legacy).Chúng tôi rất muốn nghe ý kiến từ bạn! Nếu bạn muốn chia sẻ với chúng tôi số lượng tệp bạn đã di chuyển, tổng dung lượng của chúng và thời gian di chuyển mất bao lâu, hãy gửi email đến
ayaka-notes@outlook.com .Yêu cầu
- Một object storage tương thích S3 để kết nối, xem #s3-setup để biết các lựa chọn
- Dung lượng đĩa trống để di chuyển dữ liệu hiện có, xấp xỉ bằng dung lượng hiện tại trên đĩa
- Một khoảng thời gian bảo trì để thực hiện việc di chuyển
- Một bản sao lưu đầy đủ, bao gồm cả cấu hình, để có thể khôi phục khi cần
Ước tính dung lượng đĩa cần thiết cho việc di chuyển
Chúng ta có thể dùngdu để tính dung lượng đĩa hiện đang sử dụng:
Các thư mục history đã có sẵn cấu trúc đúng. Bạn có thể tải lên trực tiếp từ thư mục nguồn được bind-mount mà không cần thêm dung lượng đĩa.
Các bước di chuyển
Bước 0: tắt phiên bản
Chúng ta cần đảm bảo rằng tất cả các tệp người dùng/mẫu đều được di chuyển. Tốt nhất là tắt phiên bản để tránh bỏ sót các tệp mới được tải lên. Vui lòng xem hướng dẫn của chúng tôi về việc thực hiện sao lưu nhất quán để biết quy trình tắt.Bước 1: viết lại cấu trúc thư mục
Chúng ta cần viết lại cấu trúc thư mục của các tệp dự án để tải chúng lên S3. Cấu trúc thư mục cho lưu trữ cục bộ trong filestore là<project-id>_<file-id> và cấu trúc thư mục trong S3 là <project-id>/<file-id>.
Trong phần sau, /srv/overleaf-s3-migration được dùng để lưu trữ các tệp theo cấu trúc thư mục mới. Thay /srv/overleaf-bind-mount bằng thư mục trên host được mount tại /var/lib/overleaf. Chạy các lệnh sao chép trên host với quyền đọc và ghi các thư mục này; container vẫn ở trạng thái dừng.
Chúng ta có thể dùng tar để viết lại cấu trúc:
Bước 2: tải tệp lên
Tùy theo sở thích, bạn có thể dùng S3 client minio mc hoặc aws cli để tải tệp lên object storage tương thích S3 của mình. aws cli- Tại đây, bạn nên thay
overleaf-user-files,overleaf-template-files,overleaf-project-blobsvàoverleaf-chunksbằng tên các bucket S3 của bạn. - Đồng thời thay
/srv/overleaf-bind-mountbằng đường dẫn cục bộ của bind-mount/var/lib/overleaf. Theo mặc định, đường dẫn này là~/overleaf_datatrong bản triển khai docker-compose.yml và<toolkit-checkout>/data/overleafkhi sử dụng Toolkit.
Bước 3: khởi động phiên bản trỏ đến S3
Thêm tất cả các biến liên quan đến S3 vào cấu hình của bạn, như được mô tả chi tiết trong phần Tổng quan về các biến trong hướng dẫn thiết lập S3. Hãy giữ lại bind-mount của thư mục dữ liệu: thư mục này cũng có thể chứa các khóa mã hóa Zotero hoặc Mendeley không được di chuyển sang S3.Vui lòng giữ nguyên bind-mount của ổ đĩa tạm (scratch disk) cho các tệp tạm thời.
- có thể xem trước các tệp nhị phân trong trình soạn thảo
- có thể biên dịch PDF có hình ảnh
- có thể tải lên tệp mới
Hoàn tác (rollback)
Bạn có thể hoàn tác việc di chuyển một cách an toàn bằng cách thực hiện ngược lại các bước:- Tắt phiên bản
- Sao chép ngược các tệp bằng cách đảo thứ tự nguồn/đích
- Ghi các tệp mới trở lại thư mục cục bộ bằng một
transformngược - Khởi động lại phiên bản với cấu hình cũ
Transform đầu tiên loại bỏ thư mục cấp cao nhất. Transform thứ hai chuyển cấu trúc thư mục sang dạng phẳng. Các wildcard đảm bảo rằng chỉ các tệp được giải nén, không bao gồm các thư mục cha (thư mục dự án) của chúng.

