[quality] * php upload_to_cdn.php --all (upload all pending videos) */ require_once dirname(__DIR__, 2) . '/f_core/config.boot.php'; require_once dirname(__DIR__, 2) . '/f_core/f_classes/class.cdn.php'; require_once dirname(__DIR__, 2) . '/f_core/f_classes/class.logger.php'; $logger = new VLogger('cdn_upload'); $cdn = new VCDN(); // Parse arguments $video_id = $argv[1] ?? null; $quality = $argv[2] ?? 'original'; if ($video_id === '--all') { uploadAllPending(); } elseif ($video_id) { uploadSingleVideo($video_id, $quality); } else { echo "Usage: php upload_to_cdn.php [quality]\n"; echo " php upload_to_cdn.php --all\n"; exit(1); } function uploadSingleVideo($video_id, $quality) { global $cdn, $logger, $class_database; $logger->info("Starting CDN upload for video $video_id ($quality)"); // Get video file path $sql = "SELECT file_path FROM db_videofiles WHERE video_id = ?"; $result = $class_database->execute($sql, [$video_id]); if (!$result || $class_database->rowCount($result) == 0) { $logger->error("Video $video_id not found"); return false; } $row = $class_database->fetch($result); $local_path = $row['file_path']; if (!file_exists($local_path)) { $logger->error("Video file not found: $local_path"); return false; } // Upload to CDN $success = $cdn->uploadVideo($video_id, $local_path, $quality); if ($success) { $logger->info("Successfully uploaded video $video_id to CDN"); echo "✓ Uploaded video $video_id ($quality)\n"; } else { $logger->error("Failed to upload video $video_id to CDN"); echo "✗ Failed to upload video $video_id\n"; } return $success; } function uploadAllPending() { global $cdn, $logger, $class_database; $logger->info("Starting batch CDN upload for all pending videos"); // Find videos not yet uploaded to CDN $sql = "SELECT v.video_id, v.file_path FROM db_videofiles v LEFT JOIN db_cdn_cache_status ccs ON v.video_id = ccs.video_id AND ccs.status = 'ready' WHERE ccs.cache_id IS NULL LIMIT 100"; $result = $class_database->execute($sql); if (!$result) { $logger->error("Failed to query pending uploads"); return; } $count = 0; $success_count = 0; while ($row = $class_database->fetch($result)) { $count++; if (uploadSingleVideo($row['video_id'], 'original')) { $success_count++; } // Rate limiting (don't overwhelm CDN) sleep(2); } $logger->info("Batch upload complete: $success_count/$count successful"); echo "\nBatch upload complete: $success_count/$count successful\n"; }