feat:支持自定义域名替换

This commit is contained in:
Max
2024-03-22 16:57:57 +08:00
parent 56942bf545
commit beb083c896
2 changed files with 19 additions and 3 deletions

View File

@@ -1,6 +1,7 @@
package com.yizhuan.xchat_android_core.file.cos
import android.content.Context
import android.net.Uri
import android.util.Log
import com.tencent.cos.xml.CosXmlService
import com.tencent.cos.xml.CosXmlServiceConfig
@@ -12,9 +13,6 @@ import com.tencent.cos.xml.model.CosXmlResult
import com.tencent.cos.xml.transfer.COSXMLUploadTask
import com.tencent.cos.xml.transfer.TransferConfig
import com.tencent.cos.xml.transfer.TransferManager
import com.yizhuan.xchat_android_core.file.cos.CosCredentialProvider
import com.yizhuan.xchat_android_core.file.cos.CosException
import com.yizhuan.xchat_android_core.file.cos.CosToken
import com.yizhuan.xchat_android_library.common.application.Env
import io.reactivex.Single
import java.io.File
@@ -68,6 +66,7 @@ object CosClient {
uploadFile(context, file, outName, token).apply {
setCosXmlResultListener(object : CosXmlResultListener {
override fun onSuccess(request: CosXmlRequest?, result: CosXmlResult) {
transformDomain(result, token)
if (Env.isDebug()) {
Log.e("CosClient", "upload onSuccess result:${result.accessUrl}")
}
@@ -90,6 +89,22 @@ object CosClient {
}
}
private fun transformDomain(result: CosXmlResult, token: CosToken) {
try {
if (result.accessUrl.isNullOrEmpty()) {
return
}
if (token.customDomain.isNullOrEmpty()) {
return
}
val newUri = Uri.parse(token.customDomain)
result.accessUrl = Uri.parse(result.accessUrl).buildUpon().scheme(newUri.scheme)
.authority(newUri.authority).build().toString()
} catch (e: Exception) {
e.printStackTrace()
}
}
/**
* 上传文件
* @param outName 远端文件名

View File

@@ -16,6 +16,7 @@ data class CosToken(
val region: String?,
val startTime: Long?,
val expireTime: Long?,
val customDomain: String?
) {
/**