如何使用Multipart.FormData上传HttpEntity.Chunked与阿卡的HTTP客户端
问题描述:
当试图在多部分组成一个大文件上传到服务器chunked entity:如何使用Multipart.FormData上传HttpEntity.Chunked与阿卡的HTTP客户端
val chunked = HttpEntity.Chunked.fromData(mimeType, sourceOfByteString)
Multipart.FormData(
Multipart.FormData.BodyPart("downloadPath", HttpEntity(fileResourceRequest.downloadPath.path)),
Multipart.FormData.BodyPart("fileSize", HttpEntity(fileResourceRequest.fileSize.toString)),
Multipart.FormData.BodyPart("data", chunked, Map("filename" → "content"))
).toEntity()
我得到这个错误:
Type mismatch: expected BodyPartEntity, actual HttpEntity.Chunked
当手动添加传输编码:分块header时,根据文档,Akka-http将其删除。
我能够使用curl
curl -i -X POST \
-H "Content-Type:multipart/form-data" \
-H "Authorization:Bearer BB3F8B79384D08B9F268F21FF76ABFA" \
-H "Transfer-Encoding:chunked" \
-F "downloadPath=/user-data/media/dachi.png" \
-F "fileSize=733830" \
-F "[email protected]\"./dachi.png\";type=image/png;filename=\"dachi.png\"" \
'http://0.0.0.0:8000'