Медиа.маги Документация

Last updated

move

move в цепочке download → move → upload, перемещающий файл между двумя URL.

1. Сводка

Перемещает файл с одного URL хранилища на другой. Используйте его, чтобы расставить готовые выходы в раскладку, которую ждёт ваша цель доставки, или чтобы смести сырые входы в архив, как только обработка закончилась.

2. Когда использовать

  • Продвижение готовой поставки из стейджингового бакета в публикационный бакет, из которого читает ваша CMS или CDN.
  • Сметание обработанного входа из живой области приёма в долгосрочный архив, как только процесс выдал свои выходы.
  • Переименование файла на месте перемещением на URL, отличающийся только последним компонентом пути.
  • Реорганизация выходов HLS или DASH в раскладку каталогов, ожидаемую упаковщиком или публикатором ниже по потоку.

3. Входы

  • Packagecore.Package. Пакет, чей файл-носитель нужно переместить. Подключайте выход-пакет производителя, чьё хранилище хотите переместить.

    Совместимые узлы выше по потоку:

    • download — читает файл по URL.
    • mp4 — оборачивает дорожки в файл MP4.
    • mov — оборачивает дорожки в файл MOV (QuickTime).
    • mxf — оборачивает дорожки в файл MXF.
    • ts — оборачивает дорожки в файл MPEG-TS.
    • dash — упаковывает дорожки в манифест MPEG-DASH.
    • hls3 — упаковывает дорожки в плейлист HLS v3.
    • hls5 — упаковывает дорожки в плейлист HLS v5.

4. Выходы

  • Packagecore.Package. Пакет, теперь указывающий на новое расположение, готовый для загрузки (когда назначение — удалённый URL) или для инспекции analyze перемещённого файла.

    Совместимые узлы ниже по потоку:

    • upload — записывает пакет на целевой URL.
    • analyze — инспектирует перемещённый файл и выводит его технические свойства как метаданные-пины.
    • delete — удаляет перемещённый файл, как только потребитель ниже по потоку его прочитал.

5. Параметры

Диалог «Move Node Settings» с полями Node Label, Input URL и Output URL.

Диалог «Настройки» — один столбец с тремя полями.

  • Node Label (string, по умолчанию пусто)

    Произвольное имя, отображаемое на плитке узла на холсте.

    • Что задаёт. Подпись над плиткой; на исходный или целевой URL не влияет.
    • Когда менять. Задавайте, когда в одном графе несколько узлов move — обычно когда отдельные ветви перемещают каждая свою поставку, — чтобы каждый был узнаваем с одного взгляда.
  • Input URL (string, обязателен, переменные допускаются)

    URL хранилища файла для перемещения.

    • Что задаёт. Исходное расположение, откуда читает move. Допустимые протоколы повторяют остальной слой хранилища платформы (http, https, ftp, s3, smb).
    • Когда менять. Почти всегда. Боевые процессы оставляют поле привязанным к переменной процесса — каждый опубликованный пример использует $In или канонический $inputURL, — чтобы каждая задача подставляла свой источник без правки графа.
    • Переменные. Поддерживаются. Привяжите к переменной процесса типа url и подставляйте значение при создании задачи.
  • Output URL (string, обязателен, переменные допускаются)

    URL хранилища, куда перемещается файл.

    • Что задаёт. Целевое расположение. Межбакетные и межпротокольные перемещения поддерживаются, пока у воркера есть учётные данные для обеих точек; переименования в том же бакете атомарны на объектном хранилище, которое это поддерживает.
    • Когда менять. Почти всегда. Боевые процессы привязывают поле к переменной процесса — $outputURL каноническое имя, — чтобы каждая задача подставляла своё назначение. Прописывайте URL жёстко только для публикации с фиксированной раскладкой, где каждая задача ложится по одному пути.
    • Переменные. Поддерживаются. Привяжите к переменной процесса типа url и подставляйте значение при создании задачи.

6. Пример

Adaptive streaming with HLS, DASH and captions на холсте

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в Adaptive streaming with HLS, DASH and captions.

7. Где используется

8. Антипаттерны

  • Перемещение ещё записываемого файла. move не ждёт, пока производитель выше по потоку финализирует файл; если в процессе есть параллельные ветви, делящие цель, ставьте перемещение ниже по потоку от ветви, пишущей файл, а не рядом с ней.
  • Межбакетные перемещения, превышающие права воркера. Когда исходный и целевой URL принадлежат разным бакетам, протоколам или областям учётных данных, перемещение молча откатывается к «копировать-и-удалить», которое может успешно прочитать и провалить удаление (или наоборот). Убедитесь, что учётные данные воркера покрывают обе точки, прежде чем планировать в масштабе.
  • Использование move там, где copy + delete безопаснее для идемпотентности. Повтор той же задачи переигрывает move, который падает, если источник больше не существует. Для процессов, которые предполагается повторять, предпочтите явную цепочку download → upload (копию) с последующим delete только после того, как каждый потребитель закончил.
  • Переименование через move, чтобы «починить» неверное назначение. move не транзакционен с загрузками или уведомлениями ниже по потоку — если CDN уже закэшировал предыдущий URL, переименование оставляет кэш устаревшим. Сделайте свежую загрузку на новый URL и инвалидируйте старый, а не полагайтесь на пост-публикационное перемещение.

9. Заметки

  • Диалог настроек читается как Move Node Settings.
  • Узел рисует один подключаемый вход Package слева и один выход Package справа. Оранжевый пин внизу слева несёт канал URL и не используется в стандартных графах перекодирования.
  • Атомарность зависит от бэкенда хранилища. Объектные хранилища вроде S3 обычно реализуют перемещение как «копировать-и-удалить» под капотом; SMB и POSIX-файловые системы поддерживают атомарное переименование в пределах тома.
Медиа.маги Документация