Direct-to-bucket video upload + transcode pipeline

- server/videoUpload.ts: S3 multipart presign helpers, bucket inventory listing
- routes: /api/admin/uploads/{init,part-url,complete,abort}, /api/admin/inventory,
  /api/internal/transcode-done (worker callback, bearer INTERNAL_TOKEN)
- admin UI: browser-to-bucket uploader with progress, bucket-vs-database panel

Originals land in folx-tv/_incoming/{guid}/, the worker on the remotion box
packages them to HLS and reports back.
This commit is contained in:
Claude Agent
2026-08-05 10:25:18 +00:00
parent f6c73f543c
commit 49d9c83201
5 changed files with 747 additions and 0 deletions
+4
View File
@@ -15,6 +15,8 @@ import { apiRequest } from "@/lib/queryClient";
import type { Video } from "@shared/schema";
import { Shield, Edit, Upload, Search, Filter, Save, X, Sparkles, Loader2 } from "lucide-react";
import HeaderAd from "@/components/HeaderAd";
import VideoUpload from "@/components/video-upload";
import InventoryPanel from "@/components/inventory-panel";
export default function AdminPage() {
const { user, isLoading: authLoading, isAuthenticated, isAdmin } = useAuth();
@@ -98,6 +100,8 @@ export default function AdminPage() {
{/* Main Content */}
<div className="lg:col-span-3">
<VideoUpload />
<InventoryPanel />
<VideoManagement search={search} onEditVideo={setSelectedVideo} onOpenDialog={setEditDialogOpen} />
</div>
</div>