From beb083c8961d52870bb9f27295cd79834dbf1540 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 22 Mar 2024 16:57:57 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=94=AF=E6=8C=81=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E5=9F=9F=E5=90=8D=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xchat_android_core/file/cos/CosClient.kt | 21 ++++++++++++++++--- .../xchat_android_core/file/cos/CosToken.kt | 1 + 2 files changed, 19 insertions(+), 3 deletions(-) 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? ) { /**