diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/file/cos/CosClient.kt b/core/src/main/java/com/yizhuan/xchat_android_core/file/cos/CosClient.kt index 46e3a98c8..4d31c0e23 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/file/cos/CosClient.kt +++ b/core/src/main/java/com/yizhuan/xchat_android_core/file/cos/CosClient.kt @@ -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 远端文件名 diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/file/cos/CosToken.kt b/core/src/main/java/com/yizhuan/xchat_android_core/file/cos/CosToken.kt index b1e436c01..9a9926226 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/file/cos/CosToken.kt +++ b/core/src/main/java/com/yizhuan/xchat_android_core/file/cos/CosToken.kt @@ -16,6 +16,7 @@ data class CosToken( val region: String?, val startTime: Long?, val expireTime: Long?, + val customDomain: String? ) { /**