Automated Backups for Delphi
Back up files and data to Amazon S3 or S3-compatible storage directly from your Delphi services.
The problem
Delphi services that need reliable backup to cloud storage often end up shelling out to rclone or the AWS CLI. That works until it doesn’t — the external binary needs installing and updating on every machine, errors come back as exit codes instead of exceptions, and the whole thing sits outside your application’s control.
The AWS SDK for Delphi lets you write backups as ordinary Delphi code inside your existing application. Upload files to S3 the same way you’d call any other Delphi API, with retries and authentication handled for you.
Upload a backup to S3
The S3 client handles multipart uploads automatically for large files:
uses
AWS.S3;
var
Client: IS3Client;
LObject: IS3Object;
begin
Client := TS3Client.Create;
LObject := TS3Object.Create('my-backups', 'db-2026-03-02.bak', Client);
LObject.UploadFile('C:\Backups\db-2026-03-02.bak');
end;
Authentication, retries, and multipart chunking are handled by the SDK.
S3-compatible storage
Anything that speaks the S3 protocol (MinIO, Backblaze B2, Cloudflare R2, DigitalOcean
Spaces) works with the same client. Just point EndpointUrl
at your server:
uses
AWS.S3;
var
Options: IS3Options;
Client: IS3Client;
LObject: IS3Object;
begin
Options := TS3Options.Create as IS3Options;
Options.EndpointUrl := 'https://minio.example.com';
Client := TS3Client.Create(Options);
// Upload — same API as Amazon S3
LObject := TS3Object.Create('backups', 'db-2026-03-02.bak', Client);
LObject.UploadFile('C:\Backups\db-2026-03-02.bak');
end;
You can also set EndpointUrl through AWS shared config
files or environment variables instead of code. Uploads, downloads, pre-signed URLs
all work the same way.
What people use it for
- Database exports uploaded on a schedule
- Application state and configuration snapshots
- User data and document archival
- Disaster recovery to off-site storage
- Scheduled maintenance snapshots before deployments
Why native beats shelling out
- No external binary to install, update, or monitor
- No CLI version drift between environments
- Error handling in Delphi: exceptions, not exit codes
- Retry logic with exponential backoff built in
- Credentials managed the same way as every other AWS SDK (environment, config files, SSO, IMDS)
- Works on every platform Delphi targets, with no platform-specific CLI binaries to manage