Exemple #1
0
        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));
        }
Exemple #2
0
        public override async Task <BackupResponse> Backup(Backup backup, BackupRequest request)
        {
            var bucket            = $"backups-service-{backup.ServiceId}";
            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;

            if (!await MinioClient.BucketExistsAsync(bucket))
            {
                await MinioClient.MakeBucketAsync(bucket, _region);
            }

            var    contents = fileSystemService.ReadBinary(combinePath);
            Stream stream   = new MemoryStream(contents);
            await MinioClient.PutObjectAsync(bucket, backup.ZipFullName, stream, stream.Length, "application/zip");

            return(new BackupResponse(true));
        }
        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));
        }