Running

Media API

High-performance media file serving and optimization service

Efficiently serve, cache, and optimize media files across your applications with intelligent compression and format conversion.

📁 Core Features
File Serving
Stream any media file from public directories with automatic MIME type detection
Image Optimization
Resize and compress images on-the-fly with quality control
Smart Caching
Intelligent cache management for improved performance
🔍 API Endpoints
GET
/{path}
Serve media file
GET
/health
Health check
GET
/stats
Performance stats
⚙️ Query Parameters
w
Width in pixels
Resize image to specified width
q
Quality 1-100
JPEG/WebP compression quality

📊 Health & Performance

Total Requests
200
Avg Response Time
13ms
Total Data Served
610.24MB
Cache Hits
916
Cache Misses
0
Cache Size
0.00MB

📝 Recent Requests (Last 20)

Path Status Duration Size Type Time
robots.txt 400 1ms 0.0KB octet-stream 10:27:59 PM
apps/studio/upload/cards/open_studio/cover/open_studio.mp4 200 7ms 3572.1KB mp4 10:26:43 PM
apps/studio/upload/cards/road_to_sunset/cover/road_to_sunset.mp4 200 22ms 9272.9KB mp4 10:26:43 PM
apps/studio/upload/cards/road_to_sunset/cover/road_to_sunset.webp 200 2ms 22.3KB webp 10:26:42 PM
apps/studio/upload/cards/playrix_ar/cover/playrix_ar.webp 200 1ms 34.5KB webp 10:26:42 PM
apps/studio/upload/cards/imuseum/cover/imuseum.mp4 200 3ms 1054.0KB mp4 10:26:42 PM
apps/studio/upload/cards/omk_ar/cover/omk_ar.webp 200 0ms 31.9KB webp 10:26:41 PM
apps/studio/upload/cards/lida_ar/cover/lida_ar.webp 200 1ms 20.5KB webp 10:26:41 PM
apps/studio/upload/cards/ghost_ar/cover/ghost_ar.mp4 200 5ms 3017.3KB mp4 10:26:40 PM
apps/studio/upload/cards/dstv_microphone/cover/dstv_microphone.webp 200 1ms 40.0KB webp 10:26:39 PM
apps/studio/upload/cards/ghost_ar/cover/ghost_ar.webp 200 1ms 16.7KB webp 10:26:39 PM
apps/studio/upload/cards/ar_train/cover/ar_train.webp 200 1ms 42.5KB webp 10:26:39 PM
robots.txt 400 1ms 0.0KB octet-stream 10:26:39 PM
apps/studio/upload/cards/tiktok_ar/cover/tiktok_ar.mp4 200 47ms 26366.0KB mp4 10:25:27 PM
apps/studio/upload/cards/playrix_ar/cover/playrix_ar.mp4 200 10ms 2385.6KB mp4 10:25:26 PM
apps/studio/upload/cards/dreamwood/cover/dreamwood.mp4 200 20ms 3430.4KB mp4 10:25:26 PM
apps/studio/upload/cards/dstv_microphone/cover/dstv_microphone.mp4 200 4ms 2279.8KB mp4 10:25:26 PM
apps/studio/upload/cards/ar_train/cover/ar_train.mp4 200 8ms 6123.9KB mp4 10:25:26 PM
apps/studio/upload/cards/put_kaleidoscope/cover/put_kaleidoscope.mp4 200 2ms 1822.7KB mp4 10:25:26 PM
apps/studio/upload/cards/tiktok_ar/cover/tiktok_ar.mp4 200 1ms 26366.0KB mp4 10:25:26 PM

📚 Usage Examples

Serve Image
GET /apps/studio/upload/cards/image.jpg
Optimize Image (800px width, 80% quality)
GET /apps/studio/upload/cards/image.jpg?w=800&q=80
Stream Video
GET /apps/studio/upload/cards/video.mp4
Check Health
GET /health
Get Statistics
GET /stats
📟 System Logs
10:27:59 PM [WARN] GET /robots.txt 400 1ms
10:27:59 PM [WARN] Security error: File type not allowed: .txt for path: robots.txt
10:26:39 PM [WARN] GET /robots.txt 400 1ms
10:26:39 PM [WARN] Security error: File type not allowed: .txt for path: robots.txt
10:25:23 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
10:25:23 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 3ms
10:16:15 PM [WARN] GET /apps/olid/upload/avatars/avatar_1761184091920.png 404 1ms
10:16:13 PM [WARN] GET /apps/olid/upload/avatars/avatar_1761184091920.png 404 1ms
10:16:09 PM [WARN] GET /apps/olid/upload/avatars/avatar_1761184091920.png 404 2ms
10:15:51 PM [WARN] GET /api/health 400 3ms
10:15:51 PM [WARN] Security error: File type not allowed: for path: api/health
10:13:57 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
10:03:44 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
10:03:34 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
10:01:22 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
10:01:22 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 0ms
9:56:31 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
9:55:07 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 0ms
9:55:07 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 0ms
9:54:59 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
9:54:59 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
9:54:53 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 0ms
9:54:53 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 0ms
9:49:39 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
9:49:39 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
9:49:27 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 0ms
9:49:27 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 0ms
9:49:27 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
9:48:37 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
9:48:36 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 7ms
9:48:30 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 0ms
9:48:30 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
9:48:23 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 0ms
9:47:24 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 4ms
9:46:59 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 5ms
9:46:59 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
9:46:20 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 2ms
9:46:20 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
9:44:29 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 0ms
9:44:29 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 4ms
9:44:29 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 0ms
9:44:27 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 3ms
9:44:27 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
9:42:37 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 6ms
9:42:36 PM [WARN] GET /apps/studio/upload/cards/neyro_bullshit/thumbnail/1762100415448_222.webp 404 1ms
9:42:23 PM [WARN] GET /info.php 400 1ms
9:42:23 PM [WARN] Security error: File type not allowed: .php for path: info.php
9:42:22 PM [WARN] GET /telescope/requests 400 1ms
9:42:22 PM [WARN] Security error: File type not allowed: for path: telescope/requests
9:42:21 PM [WARN] GET /config.json 400 1ms
9:42:21 PM [WARN] Security error: File type not allowed: .json for path: config.json
9:42:20 PM [WARN] GET /s/1393e20333e26323e2731323/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties 400 1ms
9:42:20 PM [WARN] Security error: File type not allowed: for path: s/1393e20333e26323e2731323/_/
9:42:19 PM [WARN] GET /.git/config 400 0ms
9:42:19 PM [WARN] Security error: File type not allowed: for path: .git/config
9:42:17 PM [WARN] GET /.env 400 1ms
9:42:17 PM [WARN] Security error: File type not allowed: for path: .env
9:42:16 PM [WARN] GET /.DS_Store 400 0ms
9:42:16 PM [WARN] Security error: File type not allowed: for path: .DS_Store
9:42:14 PM [WARN] GET /_all_dbs 400 0ms
9:42:14 PM [WARN] Security error: File type not allowed: for path: _all_dbs
9:42:13 PM [WARN] GET /login.action 400 1ms
9:42:13 PM [WARN] Security error: File type not allowed: .action for path: login.action
9:42:12 PM [WARN] GET /server-status 400 1ms
9:42:12 PM [WARN] Security error: File type not allowed: for path: server-status
9:42:11 PM [WARN] GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application 400 1ms
9:42:11 PM [WARN] Security error: File type not allowed: .application for path: ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application
9:42:10 PM [WARN] GET /v2/_catalog 400 2ms
9:42:10 PM [WARN] Security error: File type not allowed: for path: v2/_catalog
9:42:09 PM [WARN] GET /debug/default/view?panel=config 400 1ms
9:42:09 PM [WARN] Security error: File type not allowed: for path: debug/default/view
9:42:08 PM [WARN] GET /about 400 1ms
9:42:08 PM [WARN] Security error: File type not allowed: for path: about
9:42:06 PM [WARN] GET /.vscode/sftp.json 400 0ms
9:42:06 PM [WARN] Security error: File type not allowed: .json for path: .vscode/sftp.json
9:42:05 PM [WARN] GET /server 400 0ms
9:42:05 PM [WARN] Security error: File type not allowed: for path: server
9:42:04 PM [WARN] GET /actuator/env 400 1ms
9:42:04 PM [WARN] Security error: File type not allowed: for path: actuator/env
9:42:03 PM [WARN] GET /@vite/env 400 0ms
9:42:03 PM [WARN] Security error: File type not allowed: for path: @vite/env
9:42:02 PM [WARN] GET /api/swagger.json 400 1ms
9:42:02 PM [WARN] Security error: File type not allowed: .json for path: api/swagger.json
9:42:01 PM [WARN] GET /api-docs/swagger.json 400 1ms
9:42:01 PM [WARN] Security error: File type not allowed: .json for path: api-docs/swagger.json
9:42:00 PM [WARN] GET /v3/api-docs 400 0ms
9:42:00 PM [WARN] Security error: File type not allowed: for path: v3/api-docs
9:41:59 PM [WARN] GET /v2/api-docs 400 1ms
9:41:59 PM [WARN] Security error: File type not allowed: for path: v2/api-docs
9:41:58 PM [WARN] GET /swagger/v1/swagger.json 400 0ms
9:41:58 PM [WARN] Security error: File type not allowed: .json for path: swagger/v1/swagger.json
9:41:57 PM [WARN] GET /swagger.json 400 1ms
9:41:57 PM [WARN] Security error: File type not allowed: .json for path: swagger.json
9:41:55 PM [WARN] GET /webjars/swagger-ui/index.html 400 1ms
9:41:55 PM [WARN] Security error: File type not allowed: .html for path: webjars/swagger-ui/index.html
9:41:54 PM [WARN] GET /swagger/swagger-ui.html 400 1ms
9:41:54 PM [WARN] Security error: File type not allowed: .html for path: swagger/swagger-ui.html
9:41:52 PM [WARN] GET /swagger/index.html 400 1ms
9:41:52 PM [WARN] Security error: File type not allowed: .html for path: swagger/index.html
9:41:51 PM [WARN] GET /swagger-ui.html 400 2ms