# Eine Assembly erneut ausführen

POST`https://api2.transloadit.com/assemblies/{ASSEMBLY_ID}/replay`

###### Warnung

Für diesen Endpunkt muss Ihr [Auth Key](/de/docs/api/authentication.md) den Berechtigungsumfang `assemblies:write` haben.

Wenn eine Assembly abgestürzt ist und wir die Eingabedateien wiederherstellen können, kann Transloadit erneut versuchen, sie auszuführen.

Sie können in `params` einen neuen Parameter `notify_url` angeben, damit die bereits für die Assembly angegebene URL nicht erneut aufgerufen wird.

Geben Sie den Parameter `steps` an, um die Steps der ursprünglichen Assembly, die erneut ausgeführt wird, zu überschreiben.

Die neu erstellte Assembly enthält in ihrem Status einen Wert `parent_assembly_status`, der auf die URL der ursprünglichen abgestürzten Assembly verweist, zu der sie als Assembly Replay gehört.

## POST-Felder

* Die Übergabe von `signature` ist erforderlich. Weitere Informationen finden Sie unter [Signature Authentication](/de/docs/api/authentication.md).
* Die Übergabe von `params` ist erforderlich. Das Feld sollte ein JSON-codiertes Objekt mit den in der folgenden Tabelle aufgeführten Schlüsseln enthalten.

## Unterstützte Schlüssel im Feld `params`

* ### `auth` — **erforderlich**

`object`\
Enthält mindestens den Auth Key von Transloadit in der Eigenschaft `key`.\
Wenn Sie Signature Authentication aktivieren, müssen Sie außerdem in der Eigenschaft expires ein Ablaufdatum für die Anfrage festlegen:\
![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_GBjmaCTpH3rF6sBBsH4gkTL4K8CU)

```jsonc
{  
  "key": "23c96d084c744219a2ce156772ec3211",  
  "expires": "2009-08-28T01:02:03.000Z"  
}  
```

Wir empfehlen dringend, die Eigenschaft `nonce` einzuschließen – einen zufällig generierten, pro Anfrage eindeutigen Wert. Dieser verhindert eine doppelte Verarbeitung bei Retries, kann die Fehlerdiagnose erleichtern und vermeidet Angriffsvektoren wie die Wiederverwendung von Signaturschlüsseln:\
![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_GBjmaCTpH3rF6sBBsH4gkTL4K8CU)

```jsonc
{  
  // …  
  "nonce": "04ac6cb6-df43-41fb-a7fd-e5dd711a64e1"  
}  
```

Die Eigenschaft `referer` ist ein regulärer Ausdruck, der mit dem HTTP-Referrer dieses Uploads abgeglichen wird, beispielsweise `"example\.org"`. Geben Sie diesen Schlüssel an, um sicherzustellen, dass Uploads nur von Ihrer Domain stammen.\
Uploads ohne Referrer werden immer akzeptiert, da Referrer in einigen Browsern deaktiviert sind. Daher ist dies nur für wenige Anwendungsfälle nützlich. Einzelheiten zu regulären Ausdrücken finden Sie in der [RegExp-Dokumentation von Mozilla](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global%5FObjects/RegExp).\
Mit der Eigenschaft `max_size` können Sie eine maximale Größe in Bytes für einen Upload festlegen, beispielsweise `1048576` (1 MB). Geben Sie diese an, um zu verhindern, dass Benutzer übermäßig große Dateien hochladen. Die Dateigröße wird geprüft, sobald der Upload beginnt. Überschreitet sie die maximale Größe, wird der gesamte Upload-Vorgang abgebrochen und die Assembly schlägt fehl – selbst wenn sie Dateien enthält, die den Grenzwert `max_size` nicht überschreiten. Wenn Sie nur Dateien ignorieren möchten, die eine bestimmte Größe überschreiten, und alle anderen verarbeiten möchten, verwenden Sie bitte [🤖/file/filter](/docs/robots/file-filter.md).\
Mit der Eigenschaft `max_number_of_files` können Sie die maximale Anzahl von Dateien für einen Upload festlegen, beispielsweise `100`. Geben Sie diese an, um zu verhindern, dass Benutzer übermäßig viele Dateien hochladen – sowohl über Datei-Uploads als auch über Import-Robots.\
Diese Eigenschaften können entweder in der Assembly-Anfrage oder im Template festgelegt werden.

* ### `steps`

`Record<string, object> | Array<object>`\
Step-Überschreibungen für die erneute Wiedergabe. Steps in Objektform entsprechen der normalen Assembly-Struktur. Steps in Arrayform werden aus Gründen der Abwärtskompatibilität bei der erneuten Wiedergabe akzeptiert und vor der Ausführung normalisiert.

* ### `template_id`

`string`\
Die ID des Templates, das Ihre Assembly Instructions enthält. Wenn Sie `allow_steps_override` in Ihrem Template auf `false` setzen, schließen sich `steps` und `template_id` gegenseitig aus – Sie dürfen nur einen dieser Parameter angeben.

* ### `notify_url`

`string | null`\
Transloadit kann nach Abschluss der Assembly einen Pingback an Ihren Server senden. Wir senden den Assembly Status als formular-URL-codierten JSON-String in einem transloadit-Feld einer mehrteiligen POST-Anfrage an die hier angegebene URL. Verwenden Sie `notification_payload`, um die Größe der Nutzlast zu reduzieren (z. B. `without_uploads`, `without_results`, `without_params`); dieselbe Filterung gilt für Assembly Replays.

* ### `fields`

`Record<string, any>`\
Ein Objekt mit durch Zeichenfolgen bezeichneten Werten (Name -> Wert), die ebenso wie zusätzliche Formularfelder als Assembly Variables verwendet werden können. Als Wert können Sie alles verwenden, was sich in einen JSON-String umwandeln lässt.

* ### `reparse_template` — **erforderlich**

`0 | 1`\
Geben Sie `1` an, um das in Ihrer Assembly verwendete Template erneut zu parsen. Dies ist nützlich, wenn das Template zwischenzeitlich geändert wurde. Alternativ gibt `0` exakt die in der Assembly verwendeten Steps erneut wieder.

## Antwort

Hier sehen Sie ein Beispiel für einen Antworttext:

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

```
{
  "ok": "ASSEMBLY_REPLAYING"
}
```

Wir geben entweder den Erfolgscode `ASSEMBLY_REPLAYING` oder einen[Fehlerantwortcode](/de/docs/api/response-codes.md) mit Details zur Fehlerursache zurück.
