May
23
手头项目每次 mvn package 得到的 jar 是 160M 左右,有时候需要替换到服务器上,上传时间较长。
Google 搜到这么个项目:xdelta
https://github.com/jmacd/xdelta-gpl/releases
可以对二进制文件做 patch,对 jar 的效果还挺好,两个相近的版本做 diff,生成的 patch 文件只有 500KB 左右。
用法:
有个小问题是,服务器是 centos 7 ,yum install 的是 xdelta 3.0.7 不支持最新的 lzma 压缩,因此生成 patch 的时候需要加上 -S djw 参数,指定为 djw 编码:
Google 搜到这么个项目:xdelta
https://github.com/jmacd/xdelta-gpl/releases
可以对二进制文件做 patch,对 jar 的效果还挺好,两个相近的版本做 diff,生成的 patch 文件只有 500KB 左右。
用法:
引用
# 生成 patch
xdelta.exe -es v1.jar v2.jar v1-v2.patch
# 应用 patch
xdelta.exe -ds v1.jar v1-v2.patch v2.jar
xdelta.exe -es v1.jar v2.jar v1-v2.patch
# 应用 patch
xdelta.exe -ds v1.jar v1-v2.patch v2.jar
有个小问题是,服务器是 centos 7 ,yum install 的是 xdelta 3.0.7 不支持最新的 lzma 压缩,因此生成 patch 的时候需要加上 -S djw 参数,指定为 djw 编码:
引用
xdelta.exe -S djw -es v1.jar v2.jar v1-v2.patch
May
16
踩了个小坑,记录一下。
swagger api 定义:
/upload:
post:
tags:
- "tag"
summary: "summary"
operationId: uploadFile
consumes:
- multipart/form-data
parameters:
- name: "data"
in: "formData"
type: "file"
required: true
description: "file content"
responses:
200:
description: "success"
schema:
$ref: "#/definitions/UploadFileResponse"
生成的 API:
直接用这个 API 请求会报错:
swagger Required request part 'file' is not present
细看发现是 swagger 生成的是 @RequestPart("file") 而不是 @RequestPart("data"),需要手动修改过来才能正确读取到文件字段。
swagger api 定义:
引用
/upload:
post:
tags:
- "tag"
summary: "summary"
operationId: uploadFile
consumes:
- multipart/form-data
parameters:
- name: "data"
in: "formData"
type: "file"
required: true
description: "file content"
responses:
200:
description: "success"
schema:
$ref: "#/definitions/UploadFileResponse"
生成的 API:
@RequestMapping(value = {"/sf/express/upload_channel_file" }, produces = { "application/json" }, consumes = { "multipart/form-data" }, method = RequestMethod.POST)
default ResponseEntity<UploadFileResponse> uploadFile(@ApiParam(value = "file detail") @Valid @RequestPart("file") MultipartFile data) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
}
default ResponseEntity<UploadFileResponse> uploadFile(@ApiParam(value = "file detail") @Valid @RequestPart("file") MultipartFile data) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
}
直接用这个 API 请求会报错:
swagger Required request part 'file' is not present
细看发现是 swagger 生成的是 @RequestPart("file") 而不是 @RequestPart("data"),需要手动修改过来才能正确读取到文件字段。