This commit is contained in:
zzs 2025-02-20 17:25:57 +08:00
parent 098baa995a
commit 261912d383
4 changed files with 22 additions and 16 deletions

View File

@ -2,8 +2,6 @@ package vin.vio.collaboraonline;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.filter.CommonsRequestLoggingFilter;
@SpringBootApplication @SpringBootApplication
public class CollaboraOnlineApplication { public class CollaboraOnlineApplication {

View File

@ -2,6 +2,7 @@ package vin.vio.collaboraonline.controller;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
@ -10,16 +11,9 @@ import org.springframework.web.bind.annotation.*;
import vin.vio.collaboraonline.model.WopiFile; import vin.vio.collaboraonline.model.WopiFile;
import vin.vio.collaboraonline.service.FileService; import vin.vio.collaboraonline.service.FileService;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Instant;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import java.util.Optional;
/** /**
* @Description: TODO * @Description: TODO
@ -35,6 +29,9 @@ public class WopiController {
@Autowired @Autowired
private FileService fileService; private FileService fileService;
@Value("${collabora.host-server-addr}")
private String host;
// 检查文件信息 // 检查文件信息
@GetMapping("/files/{fileId}") @GetMapping("/files/{fileId}")
public ResponseEntity<?> checkFileInfo(@PathVariable String fileId) { public ResponseEntity<?> checkFileInfo(@PathVariable String fileId) {
@ -98,13 +95,13 @@ public class WopiController {
response.put("DisableCopy", false); response.put("DisableCopy", false);
// 添加必要协议字段 // 添加必要协议字段
response.put("HostEditUrl", "http://192.168.3.104:8080/wopi/files/"+file.getFileName()); response.put("HostEditUrl", host + "/wopi/files/"+file.getFileName());
response.put("PostMessageOrigin", "http://192.168.3.104:8080"); // 本地测试用 response.put("PostMessageOrigin", host); // 本地测试用
// 测试环境特殊配置 // 测试环境特殊配置
response.put("BreadcrumbBrandName", "DEV ENV"); response.put("BreadcrumbBrandName", "DEV ENV");
response.put("BreadcrumbBrandUrl", "http://192.168.3.104:8080"); response.put("BreadcrumbBrandUrl", host);
response.put("BreadcrumbDocName", "[测试模式] "+file.getFileName()); response.put("BreadcrumbDocName", file.getFileName());
// 绕过版本检查 // 绕过版本检查
// response.put("LastModifiedTime", "2020-01-01T00:00:00Z"); // response.put("LastModifiedTime", "2020-01-01T00:00:00Z");

View File

@ -27,8 +27,8 @@ import java.nio.file.*;
public class FileService { public class FileService {
private static final String BASE_DIR = "E:\\Code\\CollaboraOnline\\files"; @Value("${collabora.file-storage-path}")
private String BASE_DIR;
public WopiFile getFileInfo(String fileId) { public WopiFile getFileInfo(String fileId) {
Path filePath = Paths.get(BASE_DIR, fileId); Path filePath = Paths.get(BASE_DIR, fileId);

View File

@ -1,3 +1,14 @@
spring: spring:
application: application:
name: CollaboraOnline name: CollaboraOnline
collabora:
# 本机局域网ip注意 CollaboraOnline容器需要访问该地址最后不要加/
host-server-addr: http://192.168.3.104:8080
# 文件保存路径
file-storage-path: E:\Code\CollaboraOnline\files
# http://192.168.3.211:9980/browser/dist/cool.html?WOPISrc=http://192.168.3.104:8080/wopi/files/test.docx&lang=zh-cn
# http://<collabora容器IP>:<端口>/browser/dist/cool.html?WOPISrc=http://<本机IP>:<服务端口>/wopi/files/<文件名>&lang=zh-cn