feat: chunked video ingest API (init / chunk / complete)
Cloudflare's proxy plan rejects bodies above ~100 MB, so whole-body video uploads cannot exceed it no matter the origin limits. Clients now slice into 10 MB chunks: POST /video/upload/init, PUT /video/upload/:id/chunk/:index, POST /video/upload/:id/complete reassembles to disk, seals, stores to R2 and runs the normal probe + job pipeline. Max chunked upload: 100 GiB. Tests 17/17.
This commit is contained in:
parent
18afff5e49
commit
93edeab5ca
6 changed files with 843 additions and 5 deletions
|
|
@ -20,6 +20,7 @@ import { GroupsController } from "./groups/groups.controller";
|
|||
import { GroupsService } from "./groups/groups.service";
|
||||
import { VideoController } from "./video/video.controller";
|
||||
import { VideoService } from "./video/video.service";
|
||||
import { ChunkedUploadService } from "./video/chunked-upload.js";
|
||||
import { LiveMonitorModule } from "./live-monitor/live-monitor.module";
|
||||
import { MediaControlModule } from "./media-control/media-control.module";
|
||||
import { ProductionModule } from "./production/production.module";
|
||||
|
|
@ -66,6 +67,6 @@ import { MediaModule } from "./media/media.module.js";
|
|||
{ provide: PublishingExecutionRepository, useFactory: () => new PublishingExecutionRepository(pool) },
|
||||
TemporalWorkflowStarter,
|
||||
{ provide: PUBLISHING_DEPENDENCIES, inject: [PublishingExecutionRepository, TemporalWorkflowStarter, ApprovalGateService], useFactory: (repository: PublishingExecutionRepository, workflowStarter: TemporalWorkflowStarter, approvalGate: ApprovalGateService) => ({ repository, workflowStarter, approvalGate, tenantTransaction: withTenant, assertReady: () => assertPublishingSchema(pool) }) },
|
||||
PublishingService, ApprovalGateService, AuthService, ConnectionsService, TeamService, InviteLinkService, AuditQueryService, VideoService, GroupsService, SnapshotService, SettingsService, BrandingService],
|
||||
PublishingService, ApprovalGateService, AuthService, ConnectionsService, TeamService, InviteLinkService, AuditQueryService, VideoService, ChunkedUploadService, GroupsService, SnapshotService, SettingsService, BrandingService],
|
||||
})
|
||||
export class AppModule {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue