Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android AWS S3文件上载,带有2视频/图像损坏_Android_Amazon S3_Kotlin_Retrofit_Retrofit2 - Fatal编程技术网

Android AWS S3文件上载,带有2视频/图像损坏

Android AWS S3文件上载,带有2视频/图像损坏,android,amazon-s3,kotlin,retrofit,retrofit2,Android,Amazon S3,Kotlin,Retrofit,Retrofit2,当使用改型将文件上载到s3时,成功上载并返回200,但文件已损坏。该文件可以是视频或图像 val requestFile = RequestBody.create(MediaType.parse(contentType), file) val body = MultipartBody.Part.createFormData(mediaType, task.file_name, requestFile) assetService.uploadAsset(contentType, task.u

当使用改型将文件上载到s3时,成功上载并返回200,但文件已损坏。该文件可以是视频或图像

 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)
其中contentType为“视频/mp4”或“图像/jpeg”,mediaType为“视频”或“图像”

服务:

@Multipart
@PUT
fun uploadAsset(
    @Header(CONTENT_TYPE) contentType: String,
    @Url uploadUrl: String,
    @Part file: MultipartBody.Part
): Single<ResponseBody>
@Multipart
@放
趣味上传资产(
@标题(内容类型)contentType:String,
@Url上传Url:String,
@零件文件:MultipartBody.Part
):单身
文件上载后看起来正确,但已损坏且无法查看


我已经检查了这个问题,但仍然卡住了

删除了多部分上传,并且成功了。

为什么不使用S3SDK进行上传?文档非常清楚如何实现这一点,并且比rest好得多。我们使用了一个预签名的url进行上传,类似于这个问题,因此改型似乎很合适:你是说每次根据api响应上传到不同的存储桶?每个资产都有不同的上传url。URL是正确的,我从呼叫中得到200响应,但是当我在S3上查看视频/图像时,它们已损坏。错误必须在RequestBody中。为什么我们需要从改型API调用中删除多部分?S3将自动执行此操作?我们的API为S3生成的URL无法处理多部分上载,因此通过删除此URL并将其作为一个主体上载,它工作得很好。我面临的问题完全相同?您是否从ApiInterface中删除了多部分?@DhruvKaushal是的,我删除了多部分,并且一切正常。我们的上传URL不支持多部分上传到AWS。希望它对你有用!