in my case, some fixes for Huawei (like Old version s3)

Class Cloud.Storage
{
ClassMethod GetOBSCredentials(profile = "CloudStorage") As %Status
{
    Set tUsername = ##Class(Ens.Config.Credentials).%OpenId(profile)
    If (tUsername){
        Set %extOBS("AccessKeyId")=tUsername.Username
        Set %extOBS("SecretAccessKey")=tUsername.Password
    }
    Quit $$$OK
}
ClassMethod OBSSignRequest(ByRef request, requeststring, bucket) As %String
{
    If '$data(%extOBS) {
        Set sc=..GetOBSCredentials()
    }
    Set tAccessKeyId = %extOBS("AccessKeyId")
    Set tSecretAccessKey = %extOBS("SecretAccessKey")
    Set tDateH = $ZTS
    Set tWeekDay = $Piece($ZDateTime(tDateH,11)," ",1)
    Set tDate = tWeekDay_", "_$ZDateTime(tDateH,2,1)_" GMT"
    Set request.Date = tDate
    Set tContentMD5 = ""
    Set tContentType = ""
    Set CanonicalizedHeaders = "x-obs-acl:private"
    Set tStringToSign = $Piece(requeststring," ",1)_$Char(10)_
                            tContentMD5_$Char(10)_
                            tContentType_$Char(10)_
                            tDate_$Char(10)_
                            "/"_ bucket_$Piece(requeststring," ",2)
    Set tStringToSignUTF8 = $Zconvert(tStringToSign,"O","UTF8")
    Set tSignature = ##Class(%SYSTEM.Encryption).HMACSHA1(tStringToSignUTF8,tSecretAccessKey)
    Set tSignatureBase64 = ##Class(%SYSTEM.Encryption).Base64Encode(tSignature)
    Set tAuthorization = "OBS "_tAccessKeyId_":"_tSignatureBase64
    Set request.Authorization=tAuthorization
    Quit $$$OK
}
ClassMethod GetFileHeader(filename, ByRef stream As %Stream.GlobalBinary, ByRef status As %Library.DynamicObject, classname = "") As %Status
{
    Set status = {}
    Set bucket = $Piece(filename,"/",3)
    Set key=$Piece(filename,"/",4,*)
    Set object="/"_bucket_"/"_key
    Set obsRegion=$Get(^EXT.OBSBucketRegion(bucket),"la-south-2")
    Set server = bucket_".obs."_obsRegion_".myhuaweicloud.com"
    Set request = ##Class(%Net.HttpRequest).%New()
    Set request.Server = server
    Set request.Https=1
    Set request.SSLConfiguration="ISC.FeatureTracker.SSL.Config"
    Set url =  "/"_key
    Set requeststring="GET "_"/"_key
    Set sc= ..OBSSignRequest(request,requeststring,bucket)
    Set sc = request.Get(url)
    Set status.code = request.HttpResponse.StatusCode
    Set stream=request.HttpResponse.Data
    Set stream.LineTerminator=$Char(10)
    Quit $$$OK
}
}

I use Credentials to save data.

Thanks !!