How to Backup Any Annke Camera or NVR to Self-Hosted S3
Universal FTP storage setup for all Annke IP cameras and NVR series. Follow our step-by-step setup guide below to stream footage directly into AWS S3, Cloudflare R2, or Backblaze B2 via FTP/S with Rilavek as the pipe, zero on-prem NVR or bridge hardware required.
Your Annke camera or NVR uploads footage offsite in real time. Intruders cannot steal or destroy evidence by seizing on-prem recorder hardware.
Store Annke camera and NVR recordings on your own terms. Apply automated bucket lifecycle rules to roll over or archive clips after 30, 90, or 365 days.
Rilavek ingests native FTP/S uploads from your Annke hardware and streams them straight into multipart S3 PUTs with zero disk writes.
Step-by-Step Setup Guide for Annke Cameras & NVRs
Follow these 8 steps to select your cloud provider, provision your object storage, configure Rilavek’s Data Store, Sender, and Ingestion Pipe, enter your camera firmware settings, verify ingestion, and establish automated S3 retention rules.
Select Your Cloud Storage Provider
Choose where you want to store your Annke surveillance footage. Selecting a provider customizes the bucket setup steps, endpoint URLs, and API key instructions in Step 2.
Set Up Your Self-Hosted S3 Bucket & Generate API Keys
Configure your target bucket and API credentials inside Self-Hosted S3 so Rilavek can stream motion clips and continuous video directly into your storage.
Create Your Surveillance Storage Bucket
Access your RustFS Web Console or CLI and create your surveillance storage bucket .
Generate an Access Key Pair
Under Access Keys, generate an Access Key and Secret Key pair with Read/Write permissions restricted to your CCTV bucket.
Verify Secure HTTPS Connectivity
Ensure your RustFS instance is accessible via HTTPS (or Cloudflare Tunnel) on your configured port (e.g. https://rustfs.local:9000).
Add Your Data Store in Rilavek
In your Rilavek dashboard, navigate to Data Stores > New Data Store, select your provider, and enter your S3 credentials. Rilavek verifies the connection with an automated write-probe before saving.
Add New Data Store
Create a Camera Sender in Rilavek
Go to Senders in the Rilavek sidebar and click New Sender. A Sender represents the hardware identity of your Other Annke Cameras & NVRs and generates a dedicated device-level password.
Create New Sender
Must be at least 6 characters, lowercase, start with a letter/underscore, and contain only letters, numbers, hyphens, or underscores.
Secure credentials will be automatically generated for this sender.
Sender Credentials
Create & Configure Your Ingestion Pipe in Rilavek
Go to Pipes in the sidebar and click Create Pipe. Configure the 4 core sections of your pipeline: General (Pipe ID), Inputs (FTP), Access Control (Sender permission), and Destinations (Data Store).
1General Settings (Pipe ID)
Every pipeline in Rilavek is assigned an immutable, globally unique Pipe ID (e.g. p_cctv9x). This ID acts as an isolated ingestion channel that segregates audit logs, real-time transfer metrics, and storage routing. It also forms the second half of your scoped camera FTP login username (username@p_cctv9x).
Pipe ID
Use this ID to identify this pipe in logs. Combine it with the sender username for complete authentication details.
2Inputs (FTP / FTPS Ingress)
The Inputs configuration defines how camera files enter Rilavek. Enabling the FTP Ingress input provides a persistent, high-availability ingestion server (ftp.rilavek.com) compatible with active and passive FTP modes, explicit TLS negotiation, and standard CCTV firmware video push routines.
Inputs
Enable inputs to receive data.
FTP Ingress
Endpoint enabled. Connect using your Sender credentials.
Example: cam_otherannkemodel@p_cctv9x
Use the password configured for the specific Sender.
3Access Control (Sender Authorization)
Access Control prevents unauthorized uploads by enforcing a zero-trust boundary on the ingestion pipe. Only explicitly authorized Senders (such as Other Annke Cameras & NVRs) can authenticate and stream video into this pipe. Any requests with unassigned credentials are rejected at the network edge.
Access Control
Restricts who can upload to this pipe.
Individual Senders
Grant or revoke pipe access for specific individual senders.
4Destinations (Target Cloud Storage Routing)
The Destinations section routes video clips to your target cloud storage provider. Linking your configured Data Store routes all received footage directly to your Self-Hosted S3 bucket (cctv-annke-recordings). Video files are committed on-the-fly via parallel multipart S3 PUTs without intermediate disk caching.
Destinations
This is where we send your files to.
Configure FTP, Motion Detection & Linkage in Generic Camera Firmware
Open your camera's web configuration portal in your browser at its local LAN IP address and configure the universal FTP and event settings below:
Step 6AConfigure FTP Streaming Credentials
Click Network > FTP Settings (or Network > Advanced > FTP).
Turn on 'Enable FTP Upload', then enter your Rilavek Regional Gateway server (ftp.rilavek.com), port 21, scoped username (username@pipeId), and device password as indicated by callouts (1) and (2). Ensure Passive Mode (PASV) is checked (3) for seamless firewall traversal, then click 'Test FTP Connection' (4) to verify.
Note on Camera Firmware UIs: Specific camera models (such as Uniview, Hanwha Vision, Ubiquiti UniFi, Bosch, Vivotek, TP-Link, Sunba, Escam, etc.) feature varying menu layouts, but all share the same universal configuration concepts shown below: enter your FTP server credentials with Passive Mode (PASV), define a motion trigger zone, and enable “Upload to FTP” as the action.
FTP, FTPS & SFTP Upload Settings
Configure cloud storage streaming credentials to upload motion video clips and snapshots directly to your S3 bucket.
cam_generic@p_cctv9xftp.rilavek.com:21. Ingestion pipe and destination S3 bucket are active and accepting streams.Step 6BConfigure Motion Detection Zone & Sensitivity
Click Event > Motion Detection (or Video Analytics).
Turn on 'Enable Motion Detection' and adjust the detection grid over your active surveillance field (1). Set sensitivity to approximately 75% (2) and enable smart Human/Vehicle AI filtering if supported by your camera hardware to minimize false alarms.
Note on Camera Firmware UIs: Specific camera models (such as Uniview, Hanwha Vision, Ubiquiti UniFi, Bosch, Vivotek, TP-Link, Sunba, Escam, etc.) feature varying menu layouts, but all share the same universal configuration concepts shown below: enter your FTP server credentials with Passive Mode (PASV), define a motion trigger zone, and enable “Upload to FTP” as the action.
Motion Detection & Event Zone Setup
Define the motion detection area and AI sensitivity filters so the camera uploads video only when genuine activity occurs.
Step 6CConfigure Linkage Action (Upload Video Clip to FTP)
Click Action > Upload Linkage (or Event > Linkage Action).
Select 'Upload Video Recording to FTP / Cloud' (1) as the primary trigger action. Set a 5-second pre-recording buffer (2) and 30-second post-recording buffer so complete event clips are transmitted to your S3 bucket upon motion detection.
Note on Camera Firmware UIs: Specific camera models (such as Uniview, Hanwha Vision, Ubiquiti UniFi, Bosch, Vivotek, TP-Link, Sunba, Escam, etc.) feature varying menu layouts, but all share the same universal configuration concepts shown below: enter your FTP server credentials with Passive Mode (PASV), define a motion trigger zone, and enable “Upload to FTP” as the action.
Event Linkage & Upload Actions
Instruct the camera firmware what action to take upon motion trigger. Enabling “Upload to FTP” routes video clips directly to Rilavek.
Verify Ingestion
Click Test in your camera's FTP settings or trigger a test recording transfer. In your Rilavek dashboard, navigate to Pipes > your pipeline > Transfers tab to inspect incoming files as video clips stream into Self-Hosted S3.
| FILE | SENDER | SIZE | DATE | STATE |
|---|---|---|---|---|
annke/other/2026-09-10/ch01_143000.mp4 | cam_otherannkemodel | 18.4 MB | Sep 10, 14:30 | Success |
annke/other/2026-09-10/ch01_142500.mp4 | cam_otherannkemodel | 21.2 MB | Sep 10, 14:25 | Success |
annke/other/2026-09-10/ch01_142000.mp4 | cam_otherannkemodel | 19.7 MB | Sep 10, 14:20 | Success |
Configure Self-Hosted S3 Bucket Lifecycle & Retention Rules (Optional)
Optional: Prevent runaway storage costs by configuring automated bucket expiration rules. Select your retention window below and apply the generated JSON lifecycle policy or CLI command to your Self-Hosted S3 bucket. If you prefer to keep footage indefinitely or purge clips manually, feel free to skip this step.
Self-Hosted S3 Retention Window
Select timeline to generate policyApplying lifecycle expiration is optional. If you want automated retention, apply this configuration to your Self-Hosted S3 bucket to automatically purge or transition clips older than 30 days, preventing runaway storage bills.
{
"Rules": [
{
"ID": "annke-other-cctv-retention-policy",
"Status": "Enabled",
"Filter": {
"Prefix": "annke-camera/"
},
"Expiration": {
"Days": 30
}
}
]
}aws s3api put-bucket-lifecycle-configuration \ --bucket my-cctv-surveillance-bucket \ --lifecycle-configuration file://cctv-lifecycle.json
Self-Hosted S3 vs other cloud storage for Annke Cameras & NVRs
How Self-Hosted S3 compares with the other providers Rilavek can stream into.
| Provider | Billing model | Egress fees | Retention control |
|---|---|---|---|
| Usage-based (storage + operations) | Free egress | S3 Lifecycle expiration & transitions | |
| Usage-based (per GB stored) | Free up to 3x stored data/day, then metered | S3 Lifecycle expiration | |
| Flat-rate (no egress/API fees; minimum storage duration) | Free egress | S3 Lifecycle + 90-day minimum storage duration | |
| Low usage-based (per GB stored) | Free egress | S3 Lifecycle expiration | |
| Flat base (storage + egress allowance), then per-GB | Included allowance, then metered | S3 Lifecycle expiration | |
| Usage-based (storage + requests + egress) | Metered per GB | S3 Lifecycle expiration, transitions & Glacier archiving | |
| Self-hosted (your hardware/power) | Your own network | Depends on your S3 server's lifecycle support |
Frequently Asked Questions about Annke Other Annke Model Cloud Storage
How do Annke cameras and NVRs stream recordings to cloud storage?
All Annke IP cameras and NVRs feature native FTP upload capabilities in their firmware. They stream channel recordings directly to Rilavek on port 21, piping video clips into your private S3 bucket in real time for offsite backup without requiring proprietary cloud subscriptions.
Which cloud storage providers work with Annke hardware?
Rilavek supports any provider with an S3-compatible API, including Cloudflare R2, Backblaze B2, AWS S3, Wasabi, IDrive e2, and self-hosted MinIO or RustFS instances.
How does video retention work?
You define retention policies (such as 30, 60, or 90 days) directly on your S3 bucket using lifecycle expiration rules. Your recordings are under your 100% control with zero vendor lock-in.
Stream Any Annke Camera or NVR to Cloud Storage
Create your free Rilavek ingestion pipe in seconds. No NVR hardware, no proprietary camera cloud subscriptions, and 100% data ownership in your private storage bucket.
Free plan includes 10GB of transfer. No credit card required.