Commit graph

4 commits

Author SHA1 Message Date
senke
3d43d43075 feat(s3): add UploadStream + GetSignedURL with explicit TTL (v1.0.8 P1 prep)
Prepares the S3StorageService surface for the MinIO upload migration:

- UploadStream(ctx, io.Reader, key, contentType, size) — streams bytes
  via the existing manager.Uploader (multipart, 10MB parts, 3 goroutines)
  without buffering the whole body in memory. Tracks can be up to 500MB;
  UploadFile([]byte) would OOM at that size.

- GetSignedURL(ctx, key, ttl) — presigned URL with per-call TTL, decoupling
  from the service-level urlExpiry. Phase 2 needs 15min (StreamTrack),
  30min (DownloadTrack), 1h (transcoder). GetPresignedURL remains as
  thin back-compat wrapper using the default TTL.

No change in behavior for existing callers (CloudService, WaveformService,
GearDocumentService, CloudBackupWorker). TrackService will consume these
new methods in Phase 1.

Refs: plan Batch A step A1, AUDIT_REPORT §10 v1.0.8 deferrals.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 20:49:19 +02:00
senke
73533bea77 feat(v0.501): Sprint 2 -- HLS production-ready
- S1-01: Add multi-bitrate streaming profiles (128k, 256k, 320k)
- S1-02: Update master.m3u8 endpoint with 3-tier quality system
- S1-03: Integrate hls.js with ABR + useHLSPlayer hook
- S1-04: Add Cache-Control headers on HLS segments and manifests
- S1-05: Create WaveformService with async generation (FFmpeg + audiowaveform)
- S1-06: Add GET /tracks/:id/waveform endpoint with Redis cache
- S1-07: Create WaveformDisplay component with story
- S1-08: Add 4 Prometheus metrics for streaming monitoring
2026-02-22 18:16:37 +01:00
senke
76d95ecfb4 incus deployement fully implemented, Makefile updated and make fmt ran 2026-01-13 19:47:57 +01:00
senke
4c652150c5 [BE-SVC-005] be-svc: Implement file storage abstraction
- Added AWS SDK v2 dependency for S3 support
- Created S3StorageService implementing S3Service interface
- Support for AWS S3 and MinIO (S3-compatible storage)
- Added S3 configuration in config.go with environment variables
- Implemented upload, delete, presigned URL, and public URL methods
- Added unit tests for service validation and URL generation
- Service integrates with existing TrackStorageService
2025-12-24 16:28:51 +01:00