Skip to main content
Back to FileCatalyst overview

FileCatalyst integration guide

Complete guide for FileCatalyst integrations

From API integration to workflow automation - everything you need to successfully integrate FileCatalyst into your IT landscape. Including code examples, best practices and real-world scenarios.

FileCatalyst integration scenarios

Media workflow automation

Automatic video processing pipeline with FileCatalyst

Implementation steps:

  1. 1.FileCatalyst HotFolder monitors incoming media folders
  2. 2.Automatic transfer to encoding servers
  3. 3.Workflow triggers for transcoding jobs
  4. 4.Distribution to CDN endpoints via FileCatalyst Direct
  5. 5.Metadata synchronization with MAM systems

Supported technologies:

Adobe PremiereAvid Media ComposerFFmpegAWS MediaConvert

Code example:

// Java SDK Example - Media Upload
FileCatalystClient client = new FileCatalystClient();
client.connect("transfer.company.com", 21, "username", "password");

TransferOptions options = new TransferOptions();
options.setCompression(true);
options.setDeltaTransfer(true);
options.setPriority(TransferPriority.HIGH);

// Upload 4K video with metadata
client.uploadFile("/media/raw/video_4k.mov", "/production/incoming/", options);
client.setMetadata("/production/incoming/video_4k.mov", metadata);

Cloud storage synchronization

Multi-cloud storage replication with FileCatalyst

Implementation steps:

  1. 1.FileCatalyst Central orchestrates multi-site transfers
  2. 2.Direct-to-S3 accelerated uploads via FileCatalyst
  3. 3.Cross-region replication with optimal routing
  4. 4.Automatic failover to backup storage
  5. 5.Compliance logging for audit trails

Supported technologies:

AWS S3Azure BlobGoogle Cloud StorageMinIO

Code example:

# CLI Example - S3 Upload
fcupload --server s3.amazonaws.com \
         --bucket production-media \
         --access-key $AWS_ACCESS_KEY \
         --secret-key $AWS_SECRET_KEY \
         --source /data/exports/*.mp4 \
         --destination /2024/january/ \
         --compression on \
         --threads 10 \
         --bandwidth 5000

Enterprise MFT Integration

FileCatalyst as acceleration layer for GoAnywhere MFT

Implementation steps:

  1. 1.GoAnywhere MFT triggers FileCatalyst transfers
  2. 2.FileCatalyst accelerates the data transfer
  3. 3.Transfer status updates to GoAnywhere
  4. 4.Central logging and monitoring
  5. 5.Compliance reporting via GoAnywhere

Supported technologies:

GoAnywhere MFTIBM SterlingAxwayTIBCO MFT

Code example:

<!-- GoAnywhere Project XML -->
<project name="AcceleratedTransfer">
  <module name="FileCatalystTransfer">
    <executeScript>
      <script language="javascript">
        var fc = new FileCatalystAPI();
        fc.setServer("${fc.server}");
        fc.setCredentials("${fc.user}", "${fc.password}");
        
        // Transfer with acceleration
        var jobId = fc.transferFile(
          source: "${source.file}",
          destination: "${dest.path}",
          acceleration: true,
          compression: true
        );
        
        // Wait for completion
        fc.waitForJob(jobId);
        project.setVariable("transferStatus", fc.getStatus(jobId));
      </script>
    </executeScript>
  </module>
</project>

DevOps CI/CD pipeline

Build artifact distribution via FileCatalyst

Implementation steps:

  1. 1.Jenkins/GitLab triggers build process
  2. 2.FileCatalyst distributes artifacts to test environments
  3. 3.Parallel deployment to multiple datacenters
  4. 4.Rollback capabilities with delta sync
  5. 5.Performance metrics in CI/CD dashboard

Supported technologies:

JenkinsGitLab CIGitHub ActionsDocker Registry

Code example:

# GitLab CI/CD Pipeline
deploy_production:
  stage: deploy
  script:
    - echo "Building application..."
    - docker build -t app:$CI_COMMIT_SHA .
    
    - echo "Distributing via FileCatalyst..."
    - fcli transfer \
        --source ./dist/app.tar.gz \
        --destination prod-servers:/opt/deployments/ \
        --servers "eu-west-1,us-east-1,ap-south-1" \
        --parallel \
        --verify-checksum
    
    - echo "Deployment complete"
  environment:
    name: production

API & SDK code examples

Java

Complete transfer with error handling

import com.filecatalyst.client.*;

public class FileTransferService {
    private FileCatalystClient client;
    
    public void initializeClient(String host, String user, String pass) {
        try {
            client = new FileCatalystClient();
            client.setConnectionTimeout(30000);
            client.setTransferMode(TransferMode.UDP);
            client.connect(host, 21, user, pass);
            
            // Configure transfer settings
            client.setCompression(true);
            client.setBandwidth(1000000); // 1 Gbps
            client.setRetryAttempts(3);
            
        } catch (FCException e) {
            logger.error("Connection failed: " + e.getMessage());
            throw new RuntimeException(e);
        }
    }
    
    public String uploadLargeFile(String localPath, String remotePath) {
        try {
            // Start transfer with progress monitoring
            TransferMonitor monitor = client.uploadFileWithMonitor(
                localPath, 
                remotePath,
                new ProgressListener() {
                    @Override
                    public void progressUpdate(long bytes, long total) {
                        double percent = (bytes * 100.0) / total;
                        logger.info(String.format("Progress: %.2f%%", percent));
                    }
                }
            );
            
            // Wait for completion
            monitor.waitForCompletion();
            
            // Verify integrity
            if (client.verifyChecksum(localPath, remotePath)) {
                return monitor.getTransferId();
            } else {
                throw new RuntimeException("Checksum verification failed");
            }
            
        } catch (Exception e) {
            logger.error("Transfer failed: " + e.getMessage());
            throw new RuntimeException(e);
        }
    }
}

Python (REST API)

REST API integration with Python

import requests
import json
from typing import Dict, Optional

class FileCatalystAPI:
    def __init__(self, base_url: str, api_key: str):
        self.base_url = base_url
        self.headers = {
            'Authorization': f'Bearer {api_key}',
            'Content-Type': 'application/json'
        }
        self.session = requests.Session()
        self.session.headers.update(self.headers)
    
    def create_transfer_job(self, 
                           source: str, 
                           destination: str,
                           options: Optional[Dict] = None) -> str:
        """Create a new transfer job with FileCatalyst"""
        
        payload = {
            'source': source,
            'destination': destination,
            'options': options or {
                'compression': True,
                'encryption': 'AES256',
                'priority': 'high',
                'bandwidth_limit': 5000000,  # 5 Gbps
                'retry_on_failure': True,
                'delta_transfer': True
            }
        }
        
        response = self.session.post(
            f'{self.base_url}/api/v2/transfers',
            json=payload
        )
        response.raise_for_status()
        
        job_data = response.json()
        return job_data['job_id']
    
    def monitor_transfer(self, job_id: str) -> Dict:
        """Get real-time transfer status"""
        
        response = self.session.get(
            f'{self.base_url}/api/v2/transfers/{job_id}/status'
        )
        response.raise_for_status()
        
        return response.json()
    
    def get_transfer_metrics(self, job_id: str) -> Dict:
        """Get detailed transfer performance metrics"""
        
        response = self.session.get(
            f'{self.base_url}/api/v2/transfers/{job_id}/metrics'
        )
        response.raise_for_status()
        
        metrics = response.json()
        return {
            'average_speed': metrics['avg_speed_mbps'],
            'peak_speed': metrics['peak_speed_mbps'],
            'packet_loss': metrics['packet_loss_percent'],
            'compression_ratio': metrics['compression_ratio'],
            'time_elapsed': metrics['duration_seconds']
        }

# Usage example
if __name__ == '__main__':
    fc_api = FileCatalystAPI(
        base_url='https://transfer.company.com',
        api_key='your-api-key-here'
    )
    
    # Start large file transfer
    job_id = fc_api.create_transfer_job(
        source='/data/exports/dataset_100GB.tar',
        destination='s3://bucket/incoming/'
    )
    
    # Monitor progress
    import time
    while True:
        status = fc_api.monitor_transfer(job_id)
        print(f"Progress: {status['percent_complete']}%")
        print(f"Speed: {status['current_speed_mbps']} Mbps")
        
        if status['state'] == 'completed':
            metrics = fc_api.get_transfer_metrics(job_id)
            print(f"Transfer completed!")
            print(f"Average speed: {metrics['average_speed']} Mbps")
            break
        
        time.sleep(5)

PowerShell

Windows automation with PowerShell

# FileCatalyst PowerShell Module
Import-Module FileCatalyst

# Configure connection
$fcConfig = @{
    Server = "transfer.company.com"
    Port = 21
    Username = $env:FC_USERNAME
    Password = $env:FC_PASSWORD
    UseTLS = $true
}

# Connect to FileCatalyst
$session = New-FCSession @fcConfig

# Set transfer options
$transferOptions = @{
    Compression = $true
    Encryption = "AES256"
    BandwidthLimit = 5000  # Mbps
    Priority = "High"
    VerifyChecksum = $true
    DeltaTransfer = $true
    EmailNotification = "[email protected]"
}

# Upload large dataset with progress
$job = Start-FCUpload -Session $session `
    -LocalPath "D:\\Exports\\LargeDataset\\" `
    -RemotePath "/production/incoming/" `
    -Options $transferOptions `
    -Recursive `
    -AsJob

# Monitor transfer progress
while ($job.State -eq "Running") {
    $progress = Get-FCJobProgress -JobId $job.Id
    Write-Progress -Activity "Uploading Files" `
        -Status "$($progress.FilesTransferred) of $($progress.TotalFiles) files" `
        -PercentComplete $progress.PercentComplete
    
    Start-Sleep -Seconds 2
}

# Generate transfer report
$report = Get-FCTransferReport -JobId $job.Id
$report | Export-Csv -Path "transfer_report.csv" -NoTypeInformation

Write-Host "Transfer completed successfully!"
Write-Host "Total time: $($report.Duration)"
Write-Host "Average speed: $($report.AverageSpeed) Mbps"
Write-Host "Files transferred: $($report.FilesTransferred)"

Integration best practices

Performance optimization

  • Use multiple threads for small files (< 100MB)
  • Enable compression for files > 1GB over WAN
  • Configure correct MTU size (9000 for LAN, 1500 for internet)
  • Use delta transfer for regularly updated files
  • Implement bandwidth scheduling for off-peak transfers

Security best practices

  • Always use AES-256 encryption for sensitive data
  • Implement IP whitelisting for production servers
  • Use service accounts with minimal privileges
  • Enable audit logging for compliance requirements
  • Rotate API keys and credentials regularly

Monitoring & alerting

  • Integrate with central monitoring platform (Datadog, Splunk)
  • Configure alerts for failed transfers
  • Monitor bandwidth utilization trends
  • Track transfer success rates per destination
  • Implement automated retry logic with exponential backoff

High availability

  • Deploy FileCatalyst in active-active configuration
  • Use load balancers for connection distribution
  • Implement geographic redundancy
  • Configure automatic failover to backup nodes
  • Test disaster recovery procedures regularly

Download resources

API documentation

Complete API reference with all endpoints and parameters

SDK downloads

Java, C++, Python SDKs with examples

Need Help with Your Integration?

Our FileCatalyst specialists are happy to help with custom integrations, API development and workflow automation.

Direct contact with our integration specialists: