# Dateien von Webservern importieren

🤖/http/import importiert jede Datei, die über eine Web-URL öffentlich verfügbar ist, in Transloadit.

![/http/import Robot](/assets/images/robots/240x240/http-import.png?dpl=dpl_E4N8W3Gm5bkfR6nMBEGL8epT1L3T)

Das Ergebnis, das dieser Robot liefert, enthält in seinen Metadaten das Feld `import_url`, das auf die URL verweist, von der es importiert wurde. Auch weitere Konvertierungsergebnisse, die diese Datei verwenden, enthalten das Feld `import_url`. So können Sie Konvertierungsergebnisse der ursprünglich verwendeten Import-URL zuordnen.

Dieser Robot kann Links zu Dateien bei den folgenden Diensten interpretieren:

* Dropbox
* Google Drive
* Google Docs
* OneDrive

Statt die HTML-Seite mit der Dateivorschau herunterzuladen, wird die eigentliche Datei importiert.

###### Hinweis

Transloadit unterstützt Dateigrößen von bis zu 200 GB. Wenn Sie für Ihre Anwendung ein höheres Limit benötigen, [kontaktieren Sie uns](mailto:hello@transloadit.com?subject=Large%20filesizes).

## Anwendungsbeispiel

Ein Bild von einer bestimmten URL importieren:

```
{
  "steps": {
    "imported": {
      "robot": "/http/import",
      "url": "https://demos.transloadit.com/inputs/chameleon.jpg"
    }
  }
}
```

## Parameter

* ### `interpolate`

`boolean | Record<string, boolean>`\
Steuert, ob einzelne Robot-Anweisungsfelder Assembly Variables interpolieren.\
Standardmäßig interpolieren die meisten Robot-Anweisungsfelder Assembly Variables. Mit dem Wert `false` behandeln Sie alle Anweisungsfelder als Literaltext. Wenn Sie stattdessen einen einzelnen Feldpfad auf `false` setzen, wird nur dieses Feld als Literaltext behandelt. Bei Robot-spezifischen Feldern, die standardmäßig als Literaltext behandelt werden, aktivieren Sie die Interpolation wieder, indem Sie hierfür `true` festlegen oder für den jeweiligen Feldpfad den Wert `true` verwenden.\
Verwenden Sie Feldnamen wie `path` oder für verschachtelte Objekte Punktpfade wie `ffmpeg.vf` als Pfadangabe.

* ### `output_meta`

`Record<string, boolean> | boolean | Array<string>`\
Damit können Sie eine Reihe von Metadaten festlegen, deren Berechnung mehr CPU-Ressourcen beansprucht. Sie sind daher standardmäßig deaktiviert, damit Ihre Assemblies schnell verarbeitet werden.\
Für Bilder können Sie diesem Objekt den Eintrag `"has_transparency": true` hinzufügen, um zu ermitteln, ob das Bild transparente Bereiche enthält. Mit dem Eintrag `"dominant_colors": true` können Sie außerdem ein Array mit hexadezimalen Farbcodes aus dem Bild extrahieren.\
Für Bilder können Sie auch den Eintrag `"blurhash": true` hinzufügen, um einen [BlurHash](https://blurha.sh) zu extrahieren – eine kompakte Darstellung eines Platzhalters für das Bild, mit der Sie eine unscharfe Vorschau anzeigen können, während das vollständige Bild geladen wird.\
Für Videos können Sie den Parameter `"colorspace": true` hinzufügen, um den Farbraum des Ausgabevideos zu extrahieren.\
Für Videos können Sie außerdem den Eintrag `"interlaced": true` hinzufügen, um zu erkennen, ob das Video im Zeilensprungverfahren vorliegt. Dazu wird die ressourcenschonende ffprobe-Option `field_order` mit einem begrenzten Stichprobendurchlauf mithilfe von `idet` über die ersten Frames der Quelle kombiniert. Die Ergebnisse `interlaced` und `field_order` sowie das Diagnoseobjekt `interlace_detection` werden dabei unter `file.meta` ausgegeben. Dies ist rechenintensiv und wird entsprechend abgerechnet.\
Für Audio können Sie den Eintrag `"mean_volume": true` hinzufügen, um einen einzelnen Wert für die durchschnittliche Lautstärke der Audiodatei zu erhalten.\
Sie können diesen Parameter auch auf `false` setzen, um die Metadatenextraktion zu überspringen und das Transcoding zu beschleunigen.

* ### `result`

`boolean`(Standard: `false`)\
Ob die Ergebnisse dieses Steps im Assembly Status JSON enthalten sein sollen

* ### `queue`

`batch`\
Wenn Sie die Queue auf „batch“ setzen, wird die Priorität der Jobs für diesen Step manuell herabgestuft. So vermeiden Sie, Prioritätskapazitäten für Jobs zu belegen, die keine Wartezeit von null in der Queue benötigen.

* ### `force_accept`

`boolean`(Standard: `false`)\
Erzwingt, dass ein Robot einen Dateityp akzeptiert, den er sonst ignorieren würde.\
Standardmäßig ignorieren Robots Dateien, deren Typ sie nicht kennen.[🤖/video/encode](/de/docs/robots/video-encode.md) ignoriert beispielsweise problemlos Eingabebilder.\
Wenn Sie den Parameter `force_accept` auf `true` setzen, können Sie erzwingen, dass Robots alle übergebenen Dateien akzeptieren. Dies führt in der Regel zu Fehlern und sollte nur zur Fehlersuche oder zur Behandlung von Grenzfällen verwendet werden.

* ### `ignore_errors`

`boolean | Array<meta | import | execute>`(Standard: `[]`)\
Fehler in bestimmten Verarbeitungsphasen ignorieren.\
Wenn Sie diesen Wert auf `["meta"]` setzen, ignoriert der Robot Fehler bei der Metadatenextraktion.\
Wenn Sie diesen Wert auf `["execute"]` setzen, ignoriert der Robot Fehler während der Hauptausführungsphase.\
Wenn Sie diesen Wert auf `["import"]` setzen, ignoriert der Robot Fehler beim Importieren der Quelldatei. Die Phase `"import"` ist nur für importierende Robots verfügbar.\
Wenn Sie diesen Wert auf `true` setzen, entspricht dies `["meta", "import", "execute"]` und Fehler in allen drei Phasen werden ignoriert.

* ### `force_name`

`string | Array<string> | null`(Standard: `null`)\
Benutzerdefinierter Name für die importierte Datei bzw. die importierten Dateien. Standardmäßig werden die Dateinamen von der Quelle abgeleitet.

* ### `import_on_errors`

`Array<meta>`(Standard: `[]`)\
Wenn Sie dies auf `["meta"]` setzen, wird die Datei auch bei Fehlern während der Metadatenextraktion importiert. Ähnlich verhält es sich mit dem Parameter `ignore_errors`: Der Fehler wird ebenfalls ignoriert und der Robot wird nicht angehalten, die Datei wird jedoch nicht importiert.

* ### `url` — **erforderlich**

`string | Array<string>`\
Die URL, unter der die zu importierende Datei abgerufen werden kann.\
Sie können auch ein Array mit URLs oder eine durch `|` getrennte Zeichenfolge mit URLs angeben, um mehrere Dateien gleichzeitig zu importieren. Beachten Sie hierzu auch den Parameter `url_delimiter`.

* ### `url_delimiter`

`string`(Standard: `"|"`)\
Gibt das Trennzeichen an, mit dem die URLs im Wert des Parameters `url` aufgeteilt werden.

* ### `headers`

`Array<string> | Array<Record<string, string>> | string`(Standard: `[]`)\
Benutzerdefinierte Header, die beim Dateiimport gesendet werden.\
Standardmäßig ist dies ein leeres Array, sodass außer den erforderlichen Headern (z. B. Host) keine zusätzlichen Header gesendet werden.\
Header können wie folgt angegeben werden:

* Ein Array aus Zeichenfolgen im Format „Header-Name: value“
* Ein Array aus Objekten mit Header-Namen als Schlüssel und den zugehörigen Werten
* Eine JSON-Zeichenfolge, die als Objekt geparst wird\
  Derselbe Wert `headers` wird mit jeder URL in diesem `/http/import` Step gesendet. Wenn `url` ein Array ist, wird `headers` den URLs nicht anhand des Array-Index zugeordnet. Verwenden Sie separate `/http/import` Steps, wenn verschiedene URLs unterschiedliche Header benötigen.
* ### `fail_fast`

`boolean`(Standard: `false`)\
Deaktiviert den internen Retry-Mechanismus und lässt den Vorgang sofort fehlschlagen, wenn eine Ressource nicht importiert werden kann. Dies kann für leistungskritische Anwendungen nützlich sein.

* ### `max_file_size`

`string | number`\
Maximal zulässige Größe in Byte für jede importierte Datei. Meldet der Remoteserver eine größere Datei, wird der Import abgelehnt, bevor der Download beginnt. Meldet der Remoteserver die Größe nicht im Voraus, wird der Download abgebrochen, sobald dieser Grenzwert überschritten wird.

* ### `return_file_stubs`

`boolean`(Standard: `false`)\
Wenn Sie dies auf `true` setzen, importiert der Robot die eigentlichen Dateien noch nicht, sondern gibt stattdessen einen leeren Datei-Stub mit einer URL zurück, über die nachfolgende Robots die Datei importieren können. Dies ist nützlich, wenn nachfolgende Steps mehr Kontrolle über den Importvorgang benötigen, beispielsweise wenn 🤖/video/ondemand zum Einsatz kommt. Dieser Parameter sollte nur festgelegt werden, wenn alle nachfolgenden Steps Robots verwenden, die Datei-Stubs unterstützen.

* ### `range`

`string | Array<string>`\
Ermöglicht die Angabe eines oder mehrerer Bytebereiche, die aus der Datei importiert werden sollen. Damit dies funktioniert, muss der Server Bereichsanfragen unterstützen.\
**Einzelner Bereich**: Verwenden Sie eine Zeichenfolge wie `"0-99"`, um die Bytes von 0 bis 99 zu importieren (die ersten 100 Bytes).\
**Mehrere Bereiche**: Verwenden Sie ein Array wie `["0-99", "200-299"]`, um mehrere separate Bereiche zu importieren. Die resultierende Datei enthält alle angeforderten Bereiche zusammengefügt. Lücken zwischen nicht zusammenhängenden Bereichen werden mit Null-Bytes (\0) gefüllt.\
**Bereichsformate**:

* `"0-99"`: Bytes von 0 bis einschließlich 99
* `"100-199"`: Bytes von 100 bis einschließlich 199
* `"-100"`: Die letzten 100 Bytes der Datei\
  **Wichtige Hinweise**:
* Der Server muss HTTP-Bereichsanfragen unterstützen und mit 206 Partial Content antworten
* Unterstützt der Server keine Bereichsanfragen, wird stattdessen die gesamte Datei importiert
* Sich überschneidende Bereiche sind zulässig und werden wie angefordert einbezogen
* Die Größe der resultierenden Datei entspricht der höchsten angeforderten Byteposition; Lücken werden mit Null-Bytes gefüllt

## Demos

* [Service to change the name of a file imported over HTTP EN (English)](/demos/file-importing/change-name-of-http-imported-file/)
* [Service to import files over HTTP EN (English)](/demos/file-importing/import-a-file-over-http/)

## Verwandte Blogbeiträge

* [Launching audio encode Robot & exciting new updates EN (English)](/blog/2011/11/audio-encoding-is-officially-released-now/) 21. November 2011
* [Enhancements: multi-file import & uk rackspace support EN (English)](/blog/2012/02/uk-based-rackspace-auth-and-multi-url-http-import/) 11. Februar 2012
* [Addressing elevated queue times & ensuring reliability EN (English)](/blog/2012/03/last-nights-elevated-queuetimes/) 31. März 2012
* [Launching Assembly Notification for enhanced workflows EN (English)](/blog/2013/04/announcing-our-new-assembly-notification-system/) 8. April 2013
* [API & jQuery SDK 2.3.0 enhancements announced EN (English)](/blog/2013/11/api-updates-and-jquery-plugin-version-2-3-0/) 29. November 2013
* [Introducing our new virus scanning Robot for safer uploads EN (English)](/blog/2015/07/new-robot-for-virus-detection/) 14. Juli 2015
* [New pricing model for future Transloadit customers EN (English)](/blog/2018/02/raising-prices/) 7. Februar 2018
* [Transloadit launches Turbo Mode for faster video encoding EN (English)](/blog/2018/11/launching-turbo-in-public-beta/) 15. November 2018
* [Easily burn subtitles into videos with our new Robot EN (English)](/blog/2018/12/intro-to-the-subtitle-bot/) 6. Dezember 2018
* [Creating an Einstein quote generator with Transloadit EN (English)](/blog/2019/05/einstein-quote/) 14. Mai 2019
* [Tutorial: using /video/merge to develop video slideshows EN (English)](/blog/2019/06/slideshow-tutorial/) 14. Juni 2019
* [No-code real-time video uploading with Bubble & Transloadit EN (English)](/blog/2019/08/lets-build-a-website-with-video-encoding-with-no-code/) 2. August 2019
* [Let's Build: spinning record GIF generator EN (English)](/blog/2021/04/record-gif/) 1. April 2021
* [Convert Markdown files to HTML or PDF in seconds EN (English)](/blog/2021/04/md-to-pdf/) 19. April 2021
* [Enhancing /http/import Robot with fail fast option EN (English)](/blog/2021/06/fast-failing-for-http-import/) 1. Juni 2021
* [Let's Build: video from album art with Transloadit EN (English)](/blog/2021/10/video-artwork/) 10. Oktober 2021
* [Celebrating transloadit’s 2021 milestones and progress EN (English)](/blog/2022/01/21-highlights/) 31. Januar 2022
* [Build a Reddit video subtitling bot with Transloadit EN (English)](/blog/2022/02/reddit-video-subtitler/) 10. Februar 2022
* [Let's Build: music card generator with Transloadit EN (English)](/blog/2022/05/music-cards/) 5. Mai 2022
