# Neue Assembly erstellen

POST`https://api2.transloadit.com/assemblies`

###### Warnung

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

Eine Assembly kann Dateien verarbeiten und exportieren. Die [Assembly Instructions](/de/docs/topics/assembly-instructions.md) bestimmen, wie wir sie verarbeiten. Instructions können direkt übergeben werden (innerhalb eines `steps`-Parameters) oder in einemTemplate gespeichert werden (auf das in einem `template_id`-Parameter verwiesen wird). Mit Templates können Sie Instructions wiederverwenden und weiterentwickeln, ohne Ihre App bereitzustellen. Zudem müssen Sie keine vertraulichen Daten am Speicherort der bereitgestellten App offenlegen.

Wir akzeptieren POST-Anfragen mit `multipart/form-data`, damit reguläre `<form>`-Uploads zu unserem Dienst möglich sind (ebenso wie die Nutzung von XHR / SDKs).

Diese Anfrage kann mehrere Dateien enthalten. Wenn Sie fortsetzbare Datei-Uploads durchführen möchten, werden die Dateien nicht in diese Anfrage aufgenommen, wie unter[Fortsetzbare Uploads](/de/docs/api/resumable-uploads.md) beschrieben.

###### Hinweis

Transloadit unterstützt Dateigrößen bis zu 200 GB. Wenn Sie für Ihre Anwendung ein höheres Limit benötigen,[kontaktieren Sie uns bitte](mailto:support@transloadit.com).

## POST-Felder

* Die Übergabe von `signature` ist optional. 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.
* Die Übergabe von `num_expected_upload_files` ist optional. Bei fortsetzbaren Uploads gibt dieser Wert die Anzahl der hochzuladenden Dateien an. Weitere Details finden Sie unter [Fortsetzbare Uploads](/de/docs/api/resumable-uploads.md).

Sie können hier auch andere POST-Felder angeben (die nicht `params`, `signature` oder`num_expected_upload_files` heißen). Diese lassen sich als Variablen verwenden, um [Ihre Assembly Instructions dynamisch zu gestalten](/docs/robots/file-filter.md#form-fields-in-instructions).

## 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.

* ### `allow_steps_override`

`boolean`\
Setzen Sie dies auf false, um das Überschreiben von Templates zur Laufzeit zu verhindern. Wenn Sie dies auf false setzen, schließen sich template\_id und steps gegenseitig aus, und Sie dürfen nur einen dieser Parameter angeben. Dies wird empfohlen, wenn Sie Transloadit in nicht vertrauenswürdigen Umgebungen einsetzen. Es ist sinnvoller, diese Einstellung im Template festzulegen als beim Erstellen der Assembly direkt in der Assembly.

* ### `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.

* ### `notification_payload`

`Array<without_params | without_result_meta_data | without_results | without_upload_meta_data | without_uploads>`\
Steuert die Größe der Nutzlast, die in Assembly Notifications gesendet wird – sowohl bei der ersten Assembly Notification als auch bei Assembly Replays. Ein leeres Array (Standard) sendet den vollständigen Assembly Status. Fügen Sie `"without_params"` hinzu, um die JSON-Rohfelder der Assembly Instructions (`params`, `template` und `merged_params`) zu entfernen. Fügen Sie `"without_upload_meta_data"` hinzu, um `meta` aus Dateien in `uploads` zu entfernen. Fügen Sie `"without_result_meta_data"` hinzu, um `meta` aus Dateien in `results` zu entfernen. Fügen Sie `"without_uploads"` hinzu, um `uploads` vollständig zu entfernen. Fügen Sie `"without_results"` hinzu, um `results` vollständig zu entfernen. Die Filterung erfolgt vor der Serialisierung. Dadurch reduzieren diese Optionen die Speichernutzung und helfen, bei großen Assemblies Fehler durch zu große Nutzlasten oder unzureichenden Arbeitsspeicher zu vermeiden.

* ### `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.

* ### `quiet`

`boolean`\
Setzen Sie dies auf true, um die Antwort auf eine Assembly-POST-Anfrage auf die erforderlichen Felder zu beschränken. Dadurch wird verhindert, dass potenziell vertrauliche Informationen an den Endbenutzer gelangen, der die Assembly-Anfrage stellt. Eine erfolgreiche Assembly enthält nur die Felder ok und assembly\_id. Eine fehlerhafte Assembly enthält nur die Felder error, http\_code, message und assembly\_id. Der vollständige Assembly Status wird weiterhin an notify\_url gesendet, sofern dies angegeben wurde.

* ### `steps`

`Record<string, object & object>`\
Enthält Assembly Instructions.

* ### `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.

## Antwort

Hier sehen Sie ein Beispiel für einen Antworttext:

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

```
{
  "ok": "ASSEMBLY_EXECUTING",
  "http_code": 200,
  "message": "The assembly is currently being executed.",
  "assembly_id": "0fce5b1063e611e88d8eb130f7921d8a",
  "parent_id": null,
  "account_id": "6c8b8d10d68b11e3a799b579dfce333a",
  "template_id": null,
  "instance": "morven.transloadit.com",
  "assembly_url": "http://api2.morven.transloadit.com/assemblies/0fce5b1063e611e88d8eb130f7921d8a",
  "assembly_ssl_url": "https://api2-morven.transloadit.com/assemblies/0fce5b1063e611e88d8eb130f7921d8a",
  "uppyserver_url": "https://api2-morven.transloadit.com/uppy-server/",
  "websocket_url": "https://api2-morven.transloadit.com/ws20243",
  "tus_url": "https://api2-morven.transloadit.com/resumable/files/",
  "bytes_received": 1687,
  "bytes_expected": 1687,
  "upload_duration": 0.049,
  "start_date": "2018/05/30 08:47:19 GMT",
  "warnings": [],
  "execution_start": "2018/05/30 08:47:19 GMT",
  "execution_duration": 0.001,
  "queue_duration": 0.04,
  "jobs_queue_duration": 0,
  "fields": {},
  "bytes_usage": 0,
  "template": null,
  "uploads": [
    // …
  ],
  "results": {
    // …
  }
}
```

Weitere Informationen zur Antwort finden Sie in unserer Dokumentation zur [Assembly Status-Antwort](/de/docs/api/assembly-status-response.md).
