aws s3 에서 이미 올라간 파일을 복사해서 다른 이름으로 변경할때 사용하면 좋을 듯 싶습니다.
별도로 구현해야 합니다. 최종 마지막 복사 변경 작업 완료 후 검열이 끝나고 나서 최종 이전의 파일을 삭제하는게 좋을 듯 싶네요.
using Amazon.S3;
using Amazon.S3.Model;
using System;
namespace AWSFile
{
    internal class Program
    {
        public static readonly string AWSS3Doamin = "https://s3.ap-northeast-2.amazonaws.com";
        public static readonly string AWSAccessKey = "AWSAccessKey";
        public static readonly string AWSSecretKey = "AWSSecretKey";
        public static readonly string AWSBucketname = "Bucketname";
        private static IAmazonS3 s3Client = null;
        private static AmazonS3Config cfg = null;
        private static void Main(string[] args)
        {
            cfg = new AmazonS3Config();
            cfg.RegionEndpoint = Amazon.RegionEndpoint.APNortheast2;
            s3Client = new AmazonS3Client(AWSAccessKey, AWSSecretKey, cfg);
            var s3FilePath = "NPM-S3/FileData/_Upload/PayOut/NS_DA3BDA5F5BA74710BC03";
            try
            {
                CopyObjectRequest req = new CopyObjectRequest
                {
                    SourceBucket = AWSBucketname,
                    SourceKey = s3FilePath,
                    DestinationBucket = AWSBucketname,
                    DestinationKey = s3FilePath + ".pdf" //변경할 경로 + 파일명
                };
                CopyObjectResponse response = s3Client.CopyObject(req);
            }
            catch (AmazonS3Exception s3Exception)
            {
                Console.WriteLine(s3Exception.Message,
                                  s3Exception.InnerException);
            }
            //GetObjectRequest request = new GetObjectRequest();
            //GetPreSignedUrlRequest request = new GetPreSignedUrlRequest();
            //request.BucketName = AWSBucketname;
            //foreach (var file in files.Split(','))
            //{
            //    request.Key = s3FilePath + file.Replace("\r\n","");
            //    try
            //    {
            //        var obj = s3Client.GetObject(request);
            //        if (obj != null)
            //        {
            //            using (System.IO.StreamWriter ifile =
            //new System.IO.StreamWriter(@"F:\개인자료\SampleSource\AWSFile\AWSFile\files.txt", true))
            //            {
            //                ifile.WriteLine(request.Key);
            //            }
            //            Console.WriteLine(request.Key);
            //        }
            //    }
            //    catch
            //    {
            //        Console.WriteLine(" 없음 :" + request.Key);
            //    }
            //}
            Console.WriteLine("==========end==========");
            Console.ReadKey();
        }
    }
}