DEV Community

Cover image for Building an Object Storage API for Modern Applications

Building an Object Storage API for Modern Applications

Building an Object Storage API for Modern Applications
Behind every uploaded image, downloaded document and application asset is an API designed to make storage reliable and predictable.

Modern applications depend heavily on object storage.
Whether you're building a SaaS platform, an e-commerce application, a CMS or an AI product, you'll eventually need a reliable way to upload, organize and retrieve files.

While working on cloud infrastructure at Najumi Tech, we spent time thinking about one question:
What should a developer-friendly object storage API look like?
The building blocks
A storage platform should expose a small, consistent set of operations.

For most applications, that includes:
Creating storage buckets
Authenticating requests
Uploading objects
Listing stored files
Downloading objects
Deleting objects
Viewing storage statistics
Keeping the API focused makes integrations easier to understand and maintain.

Authentication
Instead of exposing storage publicly, authenticated requests provide a safer way to manage resources.

Our current approach uses:
Bucket ID
Access Key
Secret Key
This allows every request to be associated with a specific bucket while keeping credentials separate from application code.

REST API
The current Beta exposes a REST API for common storage operations.

Examples include:
GET /storage/files
POST /storage/upload
GET /storage/download/:shield
DELETE /storage/delete
GET /storage/stats
A predictable API structure helps developers integrate storage without unnecessary complexity.

Official SDKs
Writing raw HTTP requests repeatedly isn't ideal.
To simplify integration, the Beta currently includes:
Node.js
npm install @najumi/storage
const NajumiStorage = require("@najumi/storage");

const storage = new NajumiStorage({
baseUrl: "https://storage-api.najumitech.com",
bucketId: "YOUR_BUCKET_ID",
accessKey: "YOUR_ACCESS_KEY",
secretKey: "YOUR_SECRET_KEY"
});
Python
pip install najumi-storage
from najumi_storage import Storage

storage = Storage(
bucket_id="YOUR_BUCKET_ID",
access_key="YOUR_ACCESS_KEY",
secret_key="YOUR_SECRET_KEY"
)
The SDKs provide a cleaner interface for common storage operations without manually constructing HTTP requests.

Documentation matters
One lesson we've learned is that infrastructure isn't only about APIs.

Documentation is part of the product.

Developers should be able to understand how to authenticate, upload files and integrate storage without guessing.

That's why documentation continues to be an important part of the Beta.

Looking Ahead
Najumi Storage is still evolving.

Our goal is to continue improving the developer experience while expanding the platform based on real-world feedback.

If you're building applications that depend on object storage, we'd love to hear what features or workflows matter most to you.

Top comments (1)

Collapse
 
tmismail profile image
Muhammad Tukur Isma'il Najumi Tech Ltd

Thanks for reading!
If you're building applications that handle files, what's the most important feature you expect from an object storage platform?
• SDKs • Documentation • Performance • Security • Scalability
We'd genuinely love to hear your perspective.