diff --git a/src/main/java/com/alist/api/common/modules/file/FileController.java b/src/main/java/com/alist/api/common/modules/file/FileController.java index 9d89da3..c6addea 100644 --- a/src/main/java/com/alist/api/common/modules/file/FileController.java +++ b/src/main/java/com/alist/api/common/modules/file/FileController.java @@ -83,10 +83,21 @@ public class FileController { } @PostMapping("/tusHook") - public ResponseEntity> tusHook(@RequestBody Map payload) { + public ResponseEntity> tusHook(@RequestBody TusHookForm tusHookForm) { // log.info("tusHookForm: {}", tusHookForm); // fileService.insertFileAndSave(tusHookForm.tusHookDto()); - log.info("[tusHook] payload={}", payload); + log.info("[tusHook] type={}", tusHookForm.getType()); + log.info("[tusHook] uploadId={}", tusHookForm.getTusHookEventForm().getTusHookUploadForm().getId()); + log.info("[tusHook] size={}", tusHookForm.getTusHookEventForm().getTusHookUploadForm().getSize()); + log.info("[tusHook] metaData={}", tusHookForm.getTusHookEventForm().getTusHookUploadForm().getMetaData()); + + log.info("[tusHookDto] type={}", tusHookForm.tusHookDto().getType()); + log.info("[tusHookDto] uploadId={}", tusHookForm.tusHookDto().getUploadId()); + log.info("[tusHookDto] size={}", tusHookForm.tusHookDto().getSize()); + log.info("[tusHookDto] fileMasterKey={}", tusHookForm.tusHookDto().getFileMasterKey()); + log.info("[tusHookDto] filename={}", tusHookForm.tusHookDto().getFilename()); + log.info("[tusHookDto] filetype={}", tusHookForm.tusHookDto().getFiletype()); + return ApiResponse.entity("", ApiResponseCode.CODE_200); } } diff --git a/src/main/java/com/alist/api/common/modules/file/dto/TusHookDto.java b/src/main/java/com/alist/api/common/modules/file/dto/TusHookDto.java index cb169d3..a053db3 100644 --- a/src/main/java/com/alist/api/common/modules/file/dto/TusHookDto.java +++ b/src/main/java/com/alist/api/common/modules/file/dto/TusHookDto.java @@ -1,13 +1,15 @@ package com.alist.api.common.modules.file.dto; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Getter; import lombok.Setter; @Getter @Setter -@JsonIgnoreProperties(ignoreUnknown = true) public class TusHookDto { - private TusHookEventDto tusHookEventDto; - private TusHookUploadDto tusHookUploadDto; + private String type; + private String uploadId; + private Long size; + private String fileMasterKey; + private String filename; + private String filetype; } diff --git a/src/main/java/com/alist/api/common/modules/file/form/TusHookEventForm.java b/src/main/java/com/alist/api/common/modules/file/form/TusHookEventForm.java new file mode 100644 index 0000000..e02ed94 --- /dev/null +++ b/src/main/java/com/alist/api/common/modules/file/form/TusHookEventForm.java @@ -0,0 +1,14 @@ +package com.alist.api.common.modules.file.form; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@JsonIgnoreProperties(ignoreUnknown = true) +public class TusHookEventForm { + @JsonProperty("Upload") + private TusHookUploadForm tusHookUploadForm; +} diff --git a/src/main/java/com/alist/api/common/modules/file/form/TusHookForm.java b/src/main/java/com/alist/api/common/modules/file/form/TusHookForm.java index 9ac557e..d6bd196 100644 --- a/src/main/java/com/alist/api/common/modules/file/form/TusHookForm.java +++ b/src/main/java/com/alist/api/common/modules/file/form/TusHookForm.java @@ -1,9 +1,8 @@ package com.alist.api.common.modules.file.form; import com.alist.api.common.modules.file.dto.TusHookDto; -import com.alist.api.common.modules.file.dto.TusHookEventDto; -import com.alist.api.common.modules.file.dto.TusHookUploadDto; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Getter; import lombok.Setter; @@ -11,14 +10,31 @@ import lombok.Setter; @Setter @JsonIgnoreProperties(ignoreUnknown = true) public class TusHookForm { - private TusHookEventDto event; - private TusHookUploadDto upload; + @JsonProperty("Type") + private String type; + + @JsonProperty("Event") + private TusHookEventForm tusHookEventForm; public TusHookDto tusHookDto() { - TusHookDto tusHookDto = new TusHookDto(); - tusHookDto.setTusHookEventDto(this.event); - tusHookDto.setTusHookUploadDto(this.upload); + TusHookDto dto = new TusHookDto(); - return tusHookDto; + dto.setType(this.type); + + if (this.tusHookEventForm == null || this.tusHookEventForm.getTusHookUploadForm() == null) { + return dto; + } + + TusHookUploadForm upload = this.tusHookEventForm.getTusHookUploadForm(); + dto.setUploadId(upload.getId()); + dto.setSize(upload.getSize()); + + if (upload.getMetaData() != null) { + dto.setFileMasterKey(upload.getMetaData().get("fileMasterKey")); + dto.setFilename(upload.getMetaData().get("filename")); + dto.setFiletype(upload.getMetaData().get("filetype")); + } + + return dto; } } diff --git a/src/main/java/com/alist/api/common/modules/file/form/TusHookUploadForm.java b/src/main/java/com/alist/api/common/modules/file/form/TusHookUploadForm.java new file mode 100644 index 0000000..ef1b6fc --- /dev/null +++ b/src/main/java/com/alist/api/common/modules/file/form/TusHookUploadForm.java @@ -0,0 +1,22 @@ +package com.alist.api.common.modules.file.form; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; + +@Getter +@Setter +@JsonIgnoreProperties(ignoreUnknown = true) +public class TusHookUploadForm { + @JsonProperty("ID") + private String id; + + @JsonProperty("Size") + private Long size; + + @JsonProperty("MetaData") + private Map metaData; +} diff --git a/src/main/java/com/alist/api/common/modules/file/service/FileService.java b/src/main/java/com/alist/api/common/modules/file/service/FileService.java index 4516c9e..7c6ccdf 100644 --- a/src/main/java/com/alist/api/common/modules/file/service/FileService.java +++ b/src/main/java/com/alist/api/common/modules/file/service/FileService.java @@ -74,22 +74,6 @@ public class FileService { } public void insertFileAndSave(TusHookDto tusHookDto) { - if (tusHookDto == null || tusHookDto.getTusHookEventDto() == null || tusHookDto.getTusHookUploadDto() == null) { - log.info("[tusHook] invalid payload"); - return; - } - String eventType = tusHookDto.getTusHookEventDto().getType(); - TusHookUploadDto upload = tusHookDto.getTusHookUploadDto(); - Map meta = upload.getMetaData(); - - String uploadId = upload.getId(); - Long size = upload.getSize(); - String fileMasterKey = meta == null ? null : meta.get("fileMasterKey"); - String filename = meta == null ? null : meta.get("filename"); - String filetype = meta == null ? null : meta.get("filetype"); - - log.info("[tusHook] eventType={}, uploadId={}, size={}, fileMasterKey={}, filename={}, filetype={}", - eventType, uploadId, size, fileMasterKey, filename, filetype); } }