public void CopyFile(string originalPath, string duplicatePath) { originalPath = CleanPath(originalPath); duplicatePath = CleanPath(duplicatePath); var file = new S3FileInfo(_client, _amazonS3StorageConfiguration.AWSFileBucket, originalPath); var newFile = new S3FileInfo(_client, _amazonS3StorageConfiguration.AWSFileBucket, duplicatePath); file.CopyTo(newFile); PublishFile(duplicatePath); }
private static void CopyOrMoveFiles(IAmazonS3 client, S3DirectoryInfo origin, S3DirectoryInfo target, bool moveFiles, S3FileInfo file) { string currentFile = file.FullName.Replace($"{origin.Bucket.Name}:\\", string.Empty); string originFolder = currentFile.Split('\\').First(); string targetFolder = target.FullName.Replace($"{target.Bucket.Name}:\\", string.Empty).Split('\\').First(); string newFile = currentFile.Replace(originFolder, targetFolder); string verbOperation = moveFiles ? "moved" : "copied"; S3FileInfo fileOrigin = new S3FileInfo(client, origin.Bucket.Name, currentFile); if (!moveFiles) { fileOrigin.CopyTo(new S3FileInfo(client, target.Bucket.Name, newFile), true); } else { fileOrigin.MoveTo(new S3FileInfo(client, target.Bucket.Name, newFile)); } Console.WriteLine(string.Format("File {0} {1} to {2}", fileOrigin.FullName, verbOperation, newFile)); }