nt9*_*t95 8 android amazon-s3 kotlin retrofit retrofit2
我有一个来自 AWS S3 的预签名上传 URL,用于上传视频文件。在Postman上测试视频已成功上传。然而,在改造中实施时,我得到了 403 返回。我无法使用分段上传来完成此任务。
服务电话:
@Headers("Content-Type: video/mp4")
@PUT
fun uploadTaskAWS(@Url awsUrl: String, @Body filePart: RequestBody): Call<ResponseBody>
Run Code Online (Sandbox Code Playgroud)
上传:
val file = File(task.file_path)
val requestFile = RequestBody.create(MediaType.parse("video/mp4"), file)
val response = awsTaskUploadService.uploadTaskAWS(task.upload_url, requestFile)
Run Code Online (Sandbox Code Playgroud)
我已确保 URL 正确。内容类型标题也被添加,附有邮递员屏幕截图。收到 403 禁止错误
我发现了这个相关问题,但我仍然收到 403. Upload a file to AWS S3 pre-signed URL using Retrofit2
有什么建议么?
解决方案是包含多部分并期望单一响应而不是 Call :
@Multipart
@PUT
fun uploadAsset(
@Header(CONTENT_TYPE) contentType: String,
@Url uploadUrl: String,
@Part file: MultipartBody.Part
): Single<ResponseBody>
Run Code Online (Sandbox Code Playgroud)
其中 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)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5726 次 |
最近记录: |