# Erweiterter Parameter `use`

Der Parameter `use` bietet erweiterte Optionen, mit denen Sie genauer steuern können, wie Eingaben verarbeitet werden. Diese Funktionen sind besonders bei komplexen Szenarien hilfreich, etwa wenn StepsEingaben kombinieren oder bestimmten Verarbeitungsreihenfolgen folgen müssen.

## Steps bündeln

Einige Robots können die Ergebnisse mehrerer Steps für einen einzelnen Aufruf zusammenfassen. Beispielsweise würde[🤖/file/compress](/docs/robots/file-compress.md) normalerweise für jede übergebene Datei ein eigenes Archiv erstellen. Wenn Sie jedoch `bundle_steps` auf `true` setzen, wird ein Archiv mit allen Ergebnisdateien aus sämtlichen übergebenen Steps erstellt.

Um die Bündelung zu aktivieren, übergeben Sie dem Parameter `use` ein Objekt wie das folgende:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_8SSvgBPgkTYoAwcCv4gwMbTsCWEg)

```json
"use": {
  "steps": [
    ":original",
    "encoded",
    "resized"
  ],
  "bundle_steps": true
}

```

###### Hinweis

Der Parameter `bundle_steps` ist für[🤖/video/adaptive](/docs/robots/video-adaptive.md) unverzichtbar. Ohne ihn erstellen Sie für jede Wiedergabequalität eine eigene Master-Playlist-Datei.

## Nach Original gruppieren

Der Parameter `group_by_original` ordnet Ausgabedateien nach ihrer ursprünglichen Eingabedatei. Dies ist besonders wichtig für Workflows, in denen Ausgaben mit der Eingabedatei gruppiert werden sollen, die sie erzeugt hat, beispielsweise bei Verwendung von [🤖/file/compress](/docs/robots/file-compress.md), dem Robot. In diesem Fall können Sie für jede hochgeladene oder importierte Datei ein separates Archiv erstellen, anstatt eines Archivs mit allen ursprünglichen Uploads (oder eines Archivs pro Ergebnisdatei).

**Beispiel:**

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_8SSvgBPgkTYoAwcCv4gwMbTsCWEg)

```json
"compress": {
  "use": {
    "steps": ["thumbnails"],
    "bundle_steps": true,
    "group_by_original": true
  },
  "robot": "/file/compress"
}

```

Diese Konfiguration gibt an, dass der Step `compress` die Ausgabe desSteps `thumbnails` berücksichtigen, diese Ausgaben nach Originaldatei zusammenfassen und anschließend entsprechend komprimieren soll.

## Felder

Mit der Einstellung `fields` können Sie bestimmte Dateien anhand ihrer Feldnamen filtern und auswählen. Wenn dieses Array angegeben ist, wird der entsprechende Step nur für Dateien ausgeführt, die über einen der angegebenen Feldnamen übermittelt wurden.

Die Feldnamen müssen mit den Namen übereinstimmen, die den Datei-Eingabefeldern in Ihrem HTML-Formular im Attribut `name` des Datei-Eingabe-Tags zugewiesen wurden. Bei Verwendung eines Backend-SDK entspricht dies`myFieldName1`, zum Beispiel in: `$transloadit->addFile('myFieldName1', './chameleon.jpg')`.

**Beispiel:**

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_8SSvgBPgkTYoAwcCv4gwMbTsCWEg)

```json
"use": {
  "steps": [":original"],
  "fields": ["myFieldName1"]
}

```

Dieser Parameter ist standardmäßig auf `true` gesetzt. Das bedeutet, dass alle Felder akzeptiert werden.

## `as` verwenden

Manche Robots verarbeiten mehrere Eingaben. Beispielsweise kann[🤖/video/merge](/docs/robots/video-merge.md) aus Audio und Bildern eine Diashow erstellen. Sie können verschiedene Steps den passenden Eingaben zuordnen, indem Sie den Dateityp angeben, als der der jeweilige Step behandelt werden soll.

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_8SSvgBPgkTYoAwcCv4gwMbTsCWEg)

```json
"use": {
  "steps": [
    { "name": "audio_encoded", "as": "audio" },
    { "name": "images_resized", "as": "image" }
  ]
}

```

### Reihenfolge der Steps

Manchmal ist die Reihenfolge wichtig. Bei unserer Familie von Robots zum Verketten möchten Sie beispielsweise möglicherweise eine genaue Reihenfolge festlegen, in der Ihre Medien zusammengefügt werden. In diesen Fällen können Sie am Ende des Dateityps einen Index hinzufügen, beginnend mit 1. Optional können Sie auch nach dem Namen des Multipart-Felds filtern. Wie in diesem Beispiel, bei dem alle Dateien aus derselben Quelle stammen – Uploads von Endnutzern –, aber unterschiedliche `<input>`-Namen haben:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_8SSvgBPgkTYoAwcCv4gwMbTsCWEg)

```json
"use": {
  "steps": [
    { "name": ":original", "fields": "myFirstVideo", "as": "video_1" },
    { "name": ":original", "fields": "mySecondVideo", "as": "video_2" },
    { "name": ":original", "fields": "myThirdVideo", "as": "video_3" }
  ]
}

```

Wenn nicht eindeutig ist, wo die Datei eingesetzt werden soll, können Sie dies mit Assembly Variablesgenau festlegen. Beispielsweise möchten Sie möglicherweise eine Textdatei an[🤖/image/resize](/docs/robots/image-resize.md) übergeben, um den Text in ein Bild einzubrennen. Doch wenn Sie mehrere Wasserzeichen in das Bild einbrennen, wie verweisen Sie dann auf die gewünschte Textdatei? Mit `${use.text_1}` können Sie angeben, dass die erste übergebene Textdatei verwendet werden soll.

**Beispiel:**

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_8SSvgBPgkTYoAwcCv4gwMbTsCWEg)

```json
"watermarked": {
  "robot": "/image/resize",
  "use": {
    "steps": [
      { "name": "resized", "as": "base" },
      { "name": "transcribed", "as": "text" }
    ]
  },
  "text": [
    {
      "text": "Hi there",
      "valign": "top",
      "align": "left"
    },
    {
      "text": "From the 'transcribed' Step: ${use.text_1}",
      "valign": "bottom",
      "align": "right",
      "x_offset": 16,
      "y_offset": -10
    }
  ]
}

```

### Wasserzeichen über einen Assembly Step bereitstellen

Sie können sowohl die Basisbilddatei als auch das Wasserzeichenbild über den Parameter `use` an einen Assembly Stepübergeben. So können beide Teil des Uploads sein, oder Sie verwenden die Ergebnisse andererAssembly Steps als Eingabe für den[🤖/image/resize](/docs/robots/image-resize.md)-Step.

Dazu müssen Sie lediglich die `as`-Syntax verwenden:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_8SSvgBPgkTYoAwcCv4gwMbTsCWEg)

```json
"my_image_step": {
  "robot": "/image/resize",
  "use": {
    "steps": [
      { "name": ":original", "as": "base" },
      { "name": "watermark_step", "as": "watermark" }
    ]
  }
}

```

Hier wird die Ausgabe eines `watermark_step`-Steps als Wasserzeichen verwendet, während das Basisbild aus den hochgeladenen Dateien stammt.

Wenn Sie mehrere Datei-Eingabefelder verwenden, können Sie Transloadit mitteilen, welches Feld das Basisbild und welches das Wasserzeichen bereitstellt. Angenommen, Sie haben zwei Datei-Eingabefelder namens `the_image` und`the_watermark`. Mit diesen Assembly Instructions funktioniert dies über die Bedingung `fields`:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_8SSvgBPgkTYoAwcCv4gwMbTsCWEg)

```json
"my_image_step": {
  "robot": "/image/resize",
  "use": {
    "steps": [
      { "name": ":original", "fields": "the_image", "as": "base" },
      { "name": ":original", "fields": "the_watermark", "as": "watermark" }
    ]
  }
}

```

Beachten Sie, dass der Parameter `watermark_url` des Robots weiterhin funktioniert.
