š¤ Upload Image
š Get Scripts
ā¤ļø Health & Debug
š API Reference
š¤ Upload Image to MinIO
š Get Scripts
ā¤ļø Health & Debug
š API Reference & Documentation
š Project Overview
KeepTrack Image Service is a high-performance image management system built with Go and MinIO. It provides a simple, scalable solution for storing, serving, and managing images with direct URL access.
šļø Architecture
- Backend: Go with Fiber framework
- Storage: MinIO (S3-compatible object storage)
- Frontend: HTML5 with modern JavaScript
- Deployment: Docker containerization
š§ Key Features
- Direct Image Access: Images are served directly via clean URLs
- Bucket Organization: Organize images into logical buckets
- RESTful API: Complete CRUD operations for images
- Security: Built-in security headers and validation
- Caching: Optimized caching for better performance
- Monitoring: Health checks and status monitoring
š” API Endpoints
Base URL: https://image.velonovo.com
š¼ļø Image Management
- Upload Image:
POST /v1/upload - List All Images:
GET /v1/images - Get Image Info:
GET /v1/bucket/{bucket}/image/{object} - Delete Image:
DELETE /v1/bucket/{bucket}/image/{object}
š¦ Bucket Management
- Create Bucket:
POST /v1/bucket/{bucket} - List All Buckets:
GET /v1/buckets - List Bucket Images:
GET /v1/bucket/{bucket}/images
š System & Monitoring
- Health Check:
GET /v1/health - Service Status:
GET /status - API Info:
GET /api
š¼ļø Direct Access
- Direct Image:
GET /{bucket}/{image} - Image Metadata:
GET /info/{bucket}/{image}
š” Usage Examples
š¤ Upload an Image
curl -X POST https://image.velonovo.com/v1/upload \
-F "bucket_name=my-bucket" \
-F "image_name=profile-photo.jpg" \
-F "image=@/path/to/image.jpg"
š¼ļø Access Image Directly
https://image.velonovo.com/my-bucket/profile-photo.jpg
š List All Images
curl https://image.velonovo.com/v1/images
šļø Delete an Image
curl -X DELETE https://image.velonovo.com/v1/bucket/my-bucket/image/profile-photo.jpg
š Security & Best Practices
- Supported Formats: JPG, JPEG, PNG, GIF, WEBP
- File Size Limit: 10MB per image
- Bucket Naming: 3-63 characters, lowercase, alphanumeric, hyphens, dots
- Image Naming: Alphanumeric, hyphens, underscores, dots
- Caching: Images are cached for 1 year
- CORS: Enabled for cross-origin access
š Performance Features
- Streaming: Images are streamed directly from MinIO
- Caching: Browser and CDN friendly caching headers
- Compression: Efficient image serving with proper content types
- Error Handling: Graceful error responses with helpful messages
š Monitoring & Health
The service provides comprehensive monitoring endpoints:
- /health: Basic service health check
- /status: Detailed service status with metrics
- Logging: Structured logging for all operations
š§ Configuration
The service is configured via environment variables:
- MINIO_ENDPOINT: MinIO server address
- MINIO_ACCESS_KEY: MinIO access credentials
- MINIO_SECRET_KEY: MinIO secret credentials
- PORT: Service port (default: 8101)
Processing...