我有一个从AWS S3预先签名的上传URL,可以将视频文件上传到该URL。在邮递员上测试,视频已成功上传。但是,在进行改造时,我得到了403返回。我无法为此任务使用分段上传。
服务电话:
@Headers("Content-Type: video/mp4")
@PUT
fun uploadTaskAWS(@Url awsUrl: String, @Body filePart: RequestBody): Call<ResponseBody>
上载:
val file = File(task.file_path)
val requestFile = RequestBody.create(MediaType.parse("video/mp4"), file)
val response = awsTaskUploadService.uploadTaskAWS(task.upload_url, requestFile)
我已确保网址正确。内容类型标头也被添加,附加了邮递员屏幕截图。得到403禁止错误
我发现了这个相关问题,但是我仍然收到403。使用Retrofit2将文件上传到AWS S3预签名URL
有什么建议?
解决方案是包括多部分内容,并期望单一响应不是Call:
@Multipart
@PUT
fun uploadAsset(
@Header(CONTENT_TYPE) contentType: String,
@Url uploadUrl: String,
@Part file: MultipartBody.Part
): Single<ResponseBody>
传入contentType的位置
val requestFile = RequestBody.create(MediaType.parse(contentType), file)
val body = MultipartBody.Part.createFormData(mediaType, task.file_name, requestFile)
assetService.uploadAsset(contentType, task.upload_url, body)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句