Spaces:
Sleeping
Sleeping
| title: Hybrid Command Runner | |
| emoji: 🚀 | |
| colorFrom: indigo | |
| colorTo: blue | |
| sdk: docker | |
| pinned: false | |
| # API для выполнения команд | |
| Это API позволяет удаленно выполнять консольные команды. Поддерживается два режима, но основной — это **умный стриминг**. | |
| --- | |
| ## Режим 1: "Умный" стриминг (рекомендуемый) | |
| Этот эндпоинт — ваш основной инструмент. Он автоматически определяет лучший способ выполнения команды. | |
| **Эндпоинт:** `POST /api/run/stream` | |
| ### Использование с FFmpeg (Надежный режим) | |
| Если вы вызываете `ffmpeg`, API автоматически сохранит ваш файл на сервере, выполнит команду и вернет вам готовый результат. **Запрос будет длиться ровно столько, сколько идет конвертация.** | |
| **Пример `curl` для конвертации видео:** | |
| ```bash | |
| # Эта команда теперь будет работать через /api/run/stream | |
| curl -X POST 'https://<your-space-url>/api/run/stream' \ | |
| -F 'command=ffmpeg' \ | |
| -F 'args=["-i", "{INPUT_FILE}", "-vcodec", "libx264", "-acodec", "aac", "{OUTPUT_FILE}"]' \ | |
| -F 'file=@"/path/to/your/video.mov"' \ | |
| --output "converted_video.mp4" | |
| Использование с другими командами (Режим реального стриминга) | |
| Для команд вроде magick (ImageMagick) API работает в режиме реального времени, обрабатывая данные "на лету". | |
| Пример curl для обработки изображения: | |
| curl -X POST 'https://<your-space-url>/api/run/stream' \ | |
| -F 'file=@/path/to/your/image.jpg' \ | |
| -F 'command=magick' \ | |
| -F 'args=["-", "-resize", "50%", "jpg:-"]' \ | |
| --output "resized_image.jpg" | |
| Режим 2: Асинхронные задачи (для UI или очень долгих операций) | |
| Этот режим полезен, если вы создаете UI и не хотите, чтобы запрос "висел", или если конвертация занимает очень много времени (например, часы). | |
| Шаг 1: Создание задачи (POST /api/task/create) | |
| Мгновенно получаете ID задачи. | |
| Шаг 2: Проверка статуса (GET /api/task/status/:taskId) | |
| Периодически проверяете, как дела. | |
| Шаг 3: Скачивание (GET /api/download/:fileId) | |
| Когда задача готова, скачиваете результат. | |