1
1
package com.record.video.datasource
2
2
3
+ import android.content.Context
4
+ import android.util.Log
3
5
import com.record.video.api.BucketApi
4
6
import com.record.video.api.UploadApi
5
7
import com.record.video.model.remote.request.RequestPostVideoDto
6
8
import com.record.video.model.remote.response.ResponseGetPresignedUrlDto
7
9
import com.record.video.source.remote.RemoteUploadDataSource
10
+ import okhttp3.MediaType.Companion.toMediaTypeOrNull
8
11
import okhttp3.MultipartBody
12
+ import okhttp3.RequestBody
13
+ import okhttp3.RequestBody.Companion.toRequestBody
14
+ import okhttp3.ResponseBody.Companion.toResponseBody
15
+ import java.io.File
16
+ import java.net.URL
9
17
import javax.inject.Inject
10
18
11
19
class RemoteUploadDataSourceImpl @Inject constructor(
@@ -19,6 +27,12 @@ class RemoteUploadDataSourceImpl @Inject constructor(
19
27
requestPostVideoDto : RequestPostVideoDto ,
20
28
) = uploadApi.postRecord(requestPostVideoDto)
21
29
22
- override suspend fun uploadVideoToS3Bucket (url : String , multipart : MultipartBody .Part ) =
23
- bucketApi.uploadVideoWithS3Bucket(url = url, multipart, " video/mp4" )
30
+ override suspend fun uploadVideoToS3Bucket (url : String , file : File ): String {
31
+ val videoPath = file.absolutePath
32
+ val mediaType = " application/octet-stream" .toMediaTypeOrNull()
33
+ val requestBody = RequestBody .create(mediaType, videoPath)
34
+ val url = URL (bucketApi.uploadVideoWithS3Video(url, requestBody).raw().request.url.toString())
35
+ Log .d(" testUrl" ," $url " )
36
+ return URL (url.protocol, url.host, url.port, url.path).toString()
37
+ }
24
38
}
0 commit comments