kotlin - 文件从浏览器上传到泽西(服务器)客户端到泽西服务器
问题描述
背景
我有两个服务。服务 A向外界公开,服务 B由服务 A调用。所有这些服务都是 dropwizard 服务。我试图实现的功能是从前端上传一个文件,该文件被上传到处理身份验证的服务 A。应将与原样相同的请求转移到服务 B。服务 B应该在压缩和创建缩略图后获取文件并将其保存到磁盘。
我已经使用邮递员单独测试了这两个服务,它们能够接收作为 InputStream 的文件和内容处置。
问题
我面临的问题是当我想将 formData 中的文件从Service A传递到Service B时。
这是Service A中的代码,它将表单数据发送到Service B。
@POST
@Timed
@Consumes(MediaType.MULTIPART_FORM_DATA)
fun create(
@Auth user: AuthUser,
@FormDataParam("file") file: InputStream,
@FormDataParam("file") fileDetail: FormDataContentDisposition,
@FormDataParam("file") body: FormDataBodyPart,
@PathParam("res_id") articleId: String): Response {
val multiPart = FormDataMultiPart()
multiPart.bodyPart(body)
val target = this.client.target("http://localhost:8082/file/create?res_id=1")
val response = target.request().post(Entity.entity(multiPart, multiPart.mediaType), Response::class.java)
Response.status(response.status).entity(response.entity).build()
}
这是接收它的服务 B中的代码。
@POST
@Path("/create")
@Consumes(MediaType.MULTIPART_FORM_DATA)
fun create(
@FormDataParam("file") file: InputStream,
@FormDataParam("file") fileDetail: FormDataContentDisposition,
@QueryParam("res_id") resId: String): Response {
resourceLogger.info("Res id in media create $resId")
upload_file(file, fileDetail)
return Response.status(201).entity(mapOf("success" to true)).build()
}
请求到达Service A并被发送到Service B。但服务 B以 400 响应。没有日志或堆栈跟踪。无法弄清楚出了什么问题。任何帮助,将不胜感激。
解决方案
推荐阅读
- r - 用两个因素重新排列 dplyr groupby 输出?
- javascript - 单击同一选项卡时无法隐藏选项卡内容
- php - PHP 8 - Enchant 不起作用 - Broker 返回一个空数组
- java - 从文本文件中读取数字不起作用
- qml - QML TreeView itemDelegate 不指示 isSelected
- lua - 我有一个 LUA Garry's Mod 错误,我无法解决它
- keras - 尽管精度高,但损失高?
- html - 最近保存的我的 html 代码不会出现
- java - 如果一个处理程序陷入无限循环,Netty 不会处理所有传入的请求
- python - 我如何用这个 python 代码过滤一个段落它可以工作但只过滤一半的单词并留下其余的,我不知道原因