@@ -2,23 +2,23 @@ package com.record.video.datasource
2
2
3
3
import android.content.Context
4
4
import android.util.Log
5
+ import com.record.common.util.getVideoFrameAt1Sec
5
6
import com.record.video.api.BucketApi
6
7
import com.record.video.api.UploadApi
7
8
import com.record.video.model.remote.request.RequestPostVideoDto
8
9
import com.record.video.model.remote.response.ResponseGetPresignedUrlDto
9
10
import com.record.video.source.remote.RemoteUploadDataSource
11
+ import dagger.hilt.android.qualifiers.ApplicationContext
10
12
import okhttp3.MediaType.Companion.toMediaTypeOrNull
11
- import okhttp3.MultipartBody
12
13
import okhttp3.RequestBody
13
- import okhttp3.RequestBody.Companion.toRequestBody
14
- import okhttp3.ResponseBody.Companion.toResponseBody
15
14
import java.io.File
16
15
import java.net.URL
17
16
import javax.inject.Inject
18
17
19
18
class RemoteUploadDataSourceImpl @Inject constructor(
20
19
private val uploadApi : UploadApi ,
21
20
private val bucketApi : BucketApi ,
21
+ @ApplicationContext private val context : Context
22
22
) : RemoteUploadDataSource {
23
23
override suspend fun getUploadUrl (): ResponseGetPresignedUrlDto =
24
24
uploadApi.getPresignedUploadUrl()
@@ -35,4 +35,16 @@ class RemoteUploadDataSourceImpl @Inject constructor(
35
35
Log .d(" testUrl" ," $url " )
36
36
return URL (url.protocol, url.host, url.port, url.path).toString()
37
37
}
38
+
39
+ override suspend fun uploadThumbnailToS3Bucket (url : String , file : File ): String {
40
+ val videoPath = file.absolutePath
41
+ val outputImagePath = File (context.cacheDir, file.name)
42
+ getVideoFrameAt1Sec(videoPath, outputImagePath.absolutePath)
43
+ val mediaType = " application/octet-stream" .toMediaTypeOrNull()
44
+ val requestBody = RequestBody .create(mediaType, outputImagePath)
45
+ val url = URL (bucketApi.uploadVideoWithS3Video(url, requestBody).raw().request.url.toString())
46
+ Log .d(" testUrl2" ," $url " )
47
+ return URL (url.protocol, url.host, url.port, url.path).toString()
48
+
49
+ }
38
50
}
0 commit comments