private static string CanonicalizedResource()

in src/AlibabaCloud.OSS.V2/Signer/SignerV1.cs [222:253]


        private static string CanonicalizedResource(
            string resourcePath,
            IDictionary<string, string> parameters,
            IList<string>? subResource
        )
        {
            var canonicalizedResource = new StringBuilder();
            canonicalizedResource.Append(resourcePath);
            var parameterNames = new List<string>(parameters.Keys);
            parameterNames.Sort();

            var separator = '?';

            foreach (var paramName in parameterNames)
            {
                if (!(ParametersToSign.Contains(paramName) ||
                        paramName.StartsWith("x-oss-") ||
                        (subResource != null && subResource.Contains(paramName))))
                    continue;

                canonicalizedResource.Append(separator);
                canonicalizedResource.Append(paramName);
                var paramValue = parameters[paramName];

                if (!string.IsNullOrEmpty(paramValue))
                    canonicalizedResource.Append("=").Append(paramValue);

                separator = '&';
            }

            return canonicalizedResource.ToString();
        }