public static void AddCopySource()

in src/AlibabaCloud.OSS.V2/Transform/Functions.cs [152:205]


        public static void AddCopySource(ref Models.RequestModel request, ref OperationInput input)
        {
            switch (request)
            {
                case Models.UploadPartCopyRequest req:
                {
                    var bucket = req.SourceBucket ?? req.Bucket;

                    if (bucket != null)
                    {
                        var key = req.SourceKey ?? "";
                        var source = $"/{bucket}/{key.UrlEncodePath()}";

                        if (req.SourceVersionId != null)
                        {
                            source += $"?versionId={req.SourceVersionId}";
                        }

                        if (input.Headers == null)
                        {
                            input.Headers = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
                        }

                        input.Headers!["x-oss-copy-source"] = source;
                    }

                    break;
                }
                case Models.CopyObjectRequest req:
                {
                    var bucket = req.SourceBucket ?? req.Bucket;

                    if (bucket != null)
                    {
                        var key = req.SourceKey ?? "";
                        var source = $"/{bucket}/{key.UrlEncodePath()}";

                        if (req.SourceVersionId != null)
                        {
                            source += $"?versionId={req.SourceVersionId}";
                        }

                        if (input.Headers == null)
                        {
                            input.Headers = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
                        }

                        input.Headers!["x-oss-copy-source"] = source;
                    }

                    break;
                }
            }
        }