public override async Task <BackupResponse> Backup(Backup backup, BackupRequest request) { var service = new Service(backup.ServiceId); var server = new Server(service.ServerId); var fileSystemService = server.FileSystemService; var backupLocation = FileSystem.CombinePath(server.OperatingSystem, Configuration.LocalDirectory.ReplaceVariables(service)); var originalPath = FileSystem.FixAbsoluteFilePath( FileSystem.CombinePath(server.OperatingSystem, service.RootDirectory, request.Path, Compress(backup, request)), server.OperatingSystem); var newPath = FileSystem.CombinePath(server.OperatingSystem, backupLocation, backup.ZipFullName); var fileSize = fileSystemService.GetFileSize(originalPath); BackupManagerController.ThrowExceedQuota(backup, request, fileSize); backup.FileSize = fileSize; if (!fileSystemService.DirectoryExists(Path.GetDirectoryName(backupLocation))) { fileSystemService.CreateDirectory(Path.GetDirectoryName(backupLocation)); } fileSystemService.CopyFile(originalPath, newPath); fileSystemService.DeleteFile(originalPath); return(new BackupResponse(true)); }
public override Task <bool> Delete(Backup backup) { var service = new Service(backup.ServiceId); var server = new Server(service.ServerId); var fileSystemService = server.FileSystemService; var saveTo = Path.Combine(Configuration.LocalDirectory.ReplaceVariables(service), backup.ZipFullName); fileSystemService.DeleteFile(saveTo); return(System.Threading.Tasks.Task.FromResult(true)); }
public override string Compress(Backup backup, BackupRequest request) { var service = new Service(backup.ServiceId); var server = new Server(service.ServerId); var directorySecurity = GenerateVirtualDirectorySecurity(service); var baseDirectory = FileSystem.CombinePath(server.OperatingSystem, service.RootDirectory, request.Path); var fileSystem = server.FileSystemService; var toCompress = request.Directories.Select(x => x.Name).ToList(); toCompress.AddRange(request.Files.Select(x => x.Name + x.Extension)); return(fileSystem.CompressFiles(baseDirectory, toCompress.ToArray(), ObjectXml.ObjectToXml(directorySecurity), 500000000)); }
public override Task <string> DirectDownloadLink(Backup backup) { var service = new Service(backup.ServiceId); var server = new Server(service.ServerId); var saveTo = FileSystem.CombinePath(server.OperatingSystem, Configuration.LocalDirectory.ReplaceVariables(service), backup.ZipFullName); var remoteDownload = new RemoteDownload(server) { DirectorySecurity = service.GetDirectorySecurityForCurrentUser(), FileName = saveTo }; return(System.Threading.Tasks.Task.FromResult(remoteDownload.GetDownloadUrl())); }
public override async Task <BackupResponse> Backup(Backup backup, BackupRequest request) { var service = new Service(backup.ServiceId); var server = new Server(service.ServerId); var fileSystemService = server.FileSystemService; var combinePath = FileSystem.FixAbsoluteFilePath( FileSystem.CombinePath(server.OperatingSystem, service.RootDirectory, request.Path, Compress(backup, request)), server.OperatingSystem); var fileSize = fileSystemService.GetFileSize(combinePath); BackupManagerController.ThrowExceedQuota(backup, request, fileSize); backup.FileSize = fileSize; var contents = fileSystemService.ReadBinary(combinePath); fileSystemService.DeleteFile(combinePath); var fileLocation = $"/TCAdminBackupManager/{service.UserId}/{backup.ZipFullName}"; var ftpStatus = FtpClient.Upload(contents, fileLocation, createRemoteDir: true, existsMode: FtpRemoteExists.Overwrite); return(new BackupResponse(ftpStatus == FtpStatus.Success)); }
private void TcAdminEventsOnServerModified(Server args) { Console.WriteLine("Server was Modified: " + args.Name); }