[英]AWS S3 file upload with retrofit2 video/image corrupt
當使用改造上傳成功上傳文件到 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 是“video/mp4”或“image/jpeg”,mediaType 是“video”或“image”
服務 :
@Multipart
@PUT
fun uploadAsset(
@Header(CONTENT_TYPE) contentType: String,
@Url uploadUrl: String,
@Part file: MultipartBody.Part
): Single<ResponseBody>
文件上傳並看起來正確,但它們已損壞且無法查看。
我已經檢查了這個問題,但仍然卡住了。 帶有 Android Retrofit V2 庫的 AWS S3 Rest API,上傳的圖像已損壞
刪除了分段上傳,並且可以正常工作。
作為對@nt95 答案的改進和詳細說明,您正在使用 multipart 將文件發送到服務器,雖然似乎沒有必要這樣做,但只需從所需文件中創建一個RequestBody
並將其作為參數中的@Body
發送。
不工作代碼:
@Multipart
@PUT
fun uploadAsset(
@Header(CONTENT_TYPE) contentType: String,
@Url uploadUrl: String,
@Part file: MultipartBody.Part
): Single<ResponseBody>
工作代碼:
val requestFile = RequestBody.create(MediaType.parse(contentType), file)
並將其傳遞給接口,如下所示:
@PUT
fun uploadAsset(
@Header(CONTENT_TYPE) contentType: String,
@Url uploadUrl: String,
@Body file: RequestBody
): Single<ResponseBody>
你會沒事的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.