Nyota Drive provides enterprise S3-compatible cloud object storage built on high-availability edge infrastructure. Unlike AWS S3—which penalizes growing businesses with $0.08 to $0.12/GB bandwidth transfer fees every time users download files—Nyota Drive guarantees KES 0.00 egress bandwidth fees forever.
This guide explains how Nyota Drive works under the hood, provides code samples for popular SDKs (Node.js @aws-sdk/client-s3, Python boto3, and MinIO), and walks you through creating your first storage bucket.
1. How It Works Under the Hood
Nyota Drive implements the standard AWS S3 REST API specification. You can use your existing AWS SDKs, backup tools (Rclone, Cyberduck), and CI/CD deployment pipelines simply by updating your endpoint URL and credentials:
┌────────────────────────────────────────────────────────────────────────┐
│ YOUR APPLICATION / BACKEND │
│ (Node.js / Python / Go / Next.js / AWS SDK / Boto3) │
└───────────────────────────────────┬────────────────────────────────────┘
│
S3 API Endpoint: https://drive.nyotaimara.com
Credentials: S3 Access Key & Secret Key
│
▼
┌────────────────────────────────────────────────────────────────────────┐
│ NYOTA DRIVE OBJECT STORAGE │
│ - Zero Egress Bandwidth Fees ($0.00 download transfer costs) │
│ - 100,000 Class A (writes/commits) free monthly │
│ - 1,000,000 Class B (reads/downloads) free monthly │
│ - 99.999999999% (11 9's) Data Durability & AES-256 Encryption │
└────────────────────────────────────────────────────────────────────────┘2. S3 Connection Parameters Matrix
Use these global S3 connection parameters when initializing any storage client:
Parameter | Required Value | Notes |
S3 Endpoint URL | Primary API Gateway | |
Region |
| Set to |
Access Key ID |
| Generated at |
Secret Access Key | (Your Secret Key) | Displayed once upon generation |
3. Developer SDK Integration Examples
Read our developer docs at https://docs.nyotaimara.com/docs/2-nyota-drive
4. Step-by-Step: Creating Your First Storage Bucket
- Log in to the Nyota Drive Web Console.
- Click "Create Bucket" in the top-right corner.
- Enter a bucket name (must be lowercase alphanumeric characters and hyphens, e.g.,
company-media-archive). - Select your Bucket Visibility:
- Private (Default): Objects are locked behind authentication and short-lived pre-signed URLs.
- Public: Assets are routed globally via Cloudflare CDN edge nodes (
assets.drive.nyotaimara.com).
- Click "Initialize Bucket".
5. Common Pitfalls & How to Troubleshoot
Pitfall A: "My S3 Client returns SignatureDoesNotMatch or 403 Forbidden."
- The Cause: Your SDK is attempting to use legacy S3 V2 signatures or has
forcePathStyledisabled. - The Resolution: Ensure your client configuration sets
forcePathStyle: trueand uses AWS Signature Version 4.
Pitfall B: "I deleted files, but my available storage quota hasn't freed up."
- The Cause: Deleted files are moved to the Trash Bin and retained for 30 days for accidental recovery.
- The Resolution:
- Navigate to drive.nyotaimara.com/trash.
- Click "Empty Trash" to physically purge objects and immediately release storage quota.