2017-11-25 199 views
0

當試圖在多部分組成一個大文件上傳到服務器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' 

回答