Bỏ qua, tới nội dung
Tài liệu APIv1

Tích hợp lưu trữ

Tích hợp lưu trữ qua WOPI

Giao thức WOPI giữa kho tệp và máy chủ soạn thảo O3O, ba địa chỉ phải đúng, và cách chọn giữa Nextcloud, WOPI host tự viết hay lớp nhúng.

Trong trang này

O3O Office Online không giữ tệp của bạn. Tệp nằm ở hệ lưu trữ của bạn (Nextcloud, kho tài liệu nội bộ, ổ đĩa của ứng dụng web). Máy chủ soạn thảo chỉ đọc tệp khi có người mở và ghi lại khi có người lưu. Trang này giải thích giao thức mà hai bên dùng để nói chuyện với nhau, và giúp bạn chọn cách đấu phù hợp.

WOPI trong một đoạn#

WOPI (Web Application Open Platform Interface) là giao thức HTTP giữa hai vai: WOPI host là hệ giữ tệp và quyền, WOPI client là máy chủ soạn thảo. Host cấp cho mỗi lần mở một access_token gắn với một tệp và một người dùng. Máy chủ soạn thảo dùng token đó để gọi ngược về host qua ba thao tác chính: CheckFileInfo (siêu dữ liệu và quyền), GetFile (nội dung) và PutFile (ghi bản mới). Trình duyệt không bao giờ tải tệp trực tiếp từ host.

Ba địa chỉ phải đúng#

Địa chỉAi gọi, gọi tới đâuGiá trị trên máy DEV
Discovery của máy chủ soạn thảoWOPI host gọi /hosting/discovery để biết mở tệp bằng URL nàohttp://o3o-online:9980 (trong mạng o3o-net)
URL trình soạn thảo (urlsrc)Trình duyệt nạp trang soạn thảo trong iframe, luôn qua proxyhttp://localhost:8080/browser/<hash>/cool.html?
WOPISrcMáy chủ soạn thảo gọi ngược về host để đọc và ghi tệphttp://o3o-nextcloud/index.php/apps/richdocuments/wopi/files/<id>

Hai địa chỉ đầu do máy chủ O3O quyết định qua O3O_ONLINE_SERVER_NAMEO3O_ONLINE_SSL_TERMINATION. Địa chỉ thứ ba do WOPI host quyết định và phải là địa chỉ mà container o3o-online gọi tới được, đồng thời phải được khai trong một nhóm aliasgroupN. Phần lớn lỗi khi đấu nối nằm ở địa chỉ thứ ba.

Chọn cách đấu#

Tình huốngNên dùngTrạng thái trong v1
Người dùng đã làm việc trên NextcloudNextcloud + richdocumentsCó. Hồ sơ compose nextcloud đi kèm.
Nextcloud AIO hoặc Nextcloud cài sẵn ở nơi khácNextcloud AIO và Nextcloud cài sẵnCó thể dùng; chưa kiểm chứng trên AIO
Ứng dụng web của bạn có kho tệp riêng và muốn tự kiểm soát quyềnTự viết WOPI hostThử nghiệm: đã chạy với image DEV
Chỉ cần mở một tệp theo URL rồi nhận bản đã sửa, không muốn viết WOPILớp nhúng O3O.EditorCó. Gate đóng vai WOPI host hộ bạn.
ownCloud, oCISownCloud và oCISSắp có

Luồng mở tài liệu qua WOPI#

  1. WOPI host đọc /hosting/discovery một lần (nên nhớ đệm vài phút) để lấy urlsrc theo đuôi tệp.
  2. Người dùng bấm mở tệp. Host kiểm quyền, sinh access_token và hạn access_token_ttl.
  3. Trang của host gửi form POST vào một iframe tới urlsrc + "WOPISrc=" + URL tệp, token nằm trong thân form.
  4. Proxy O3O hỏi gate có còn chỗ cho phiên soạn thảo mới không (xem cách đếm kết nối).
  5. Máy chủ soạn thảo gọi CheckFileInfo rồi GetFile tới WOPISrc và hiển thị tài liệu.
  6. Khi tự lưu, khi người dùng bấm lưu, và khi người cuối cùng rời đi: máy chủ soạn thảo gọi PutFile. Gate không đứng trên đường này nên không bao giờ chặn lưu.

Kiểm tra nhanh máy chủ soạn thảo#

BashBa lệnh đầu tiên khi đấu nối
# Địa chỉ trình soạn thảo mà trình duyệt sẽ mở (urlsrc)
curl -s http://localhost:8080/hosting/discovery | grep -o 'ext="docx" name="edit" urlsrc="[^"]*"'

# Khả năng của máy chủ soạn thảo
curl -s http://localhost:8080/hosting/capabilities

# Gate có thấy máy chủ soạn thảo không: "upstream": {"coolwsd": "ok", ...}
curl -s http://localhost:8080/o3o/status