REST-API für die Unterstützung unstrukturierter Daten

Unter diesem Thema wird die REST-API beschrieben, die für den Zugriff auf Stagingdateien verwendet wird.

Unter diesem Thema:

GET /api/files/

Ruft eine Datendatei aus einem internen oder externen Stagingbereich ab bzw. lädt sie herunter.

Authentifizierung

Authentifizierung am REST-API-Endpunkt mit OAuth für benutzerdefinierte Clients. Erstellen Sie eine Sicherheitsintegration (mit CREATE SECURITY INTEGRATION (Snowflake OAuth)), damit ein HTTP-Client, der OAuth unterstützt (z. B. cURL) in die Lage versetzt wird, Benutzer auf eine Autorisierungsseite umzuleiten und Zugriffstoken für den Zugriff auf den REST-API-Endpunkt zu generieren. Weitere Informationen zur Konfiguration von OAuth für benutzerdefinierte Clients finden Sie unter Snowflake OAuth für benutzerdefinierte Clients konfigurieren.

Nutzungshinweise

  • Senden Sie die Bereichs-URL oder Datei-URL einer Stagingdatei in der GET-Anforderung.

    • Generieren Sie eine Bereichs-URL durch Aufruf der SQL-Funktion BUILD_SCOPED_FILE_URL.

    • Generieren Sie eine Datei-URL durch Aufruf der SQL-Funktion BUILD_STAGE_FILE_URL. Alternativ können Sie auch die Verzeichnistabelle für den Stagingbereich abfragen, falls vorhanden.

  • Authentifizierung bei Snowflake über Snowflake-SQL-API mit OAuth oder Schlüsselpaar-Authentifizierung. Eine Anleitung dazu finden Sie unter Snowflake-SQL-API-Entwicklerhandbuch.

  • Die Berechtigung zum Dateizugriff ist unterschiedlich, je nachdem, ob in der GET-Anforderung eine Bereichs-URL oder eine Datei-URL gesendet wird:

    Bereichs-URL

    Nur der Benutzer, der die Bereichs-URL generiert hat, kann mit der URL auf die referenzierte Datei zuzugreifen.

    Datei-URL

    Jede Rolle, die über ausreichende Berechtigungen für den Stagingbereich verfügt, kann auf die Datei zugreifen:

    • Externer Stagingbereich: USAGE

    • Interner Stagingbereich: READ

  • Ein HTTP-Client, der eine URL (entweder Bereichs-URL oder Datei-URL) an die REST-API sendet, muss so konfiguriert sein, dass er Umleitungen zulässt.

  • Wenn aus einem internen Stagingbereich heruntergeladene Dateien beschädigt sind, überprüfen Sie mit dem Ersteller des Stagingbereichs, ob ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE') für den Stagingbereich eingestellt ist.

Header der Anforderung

Die folgenden Anforderungsheader gelten für alle Operationen:

Header

Beschreibung

Authorization

Geben Sie hier Bearer, gefolgt von dem generierten OAuth-Token an, das zur Authentifizierung bei Snowflake verwendet wird.

Weitere Informationen dazu finden Sie unter Authentifizieren beim Server mit OAuth.

Beispiel:

Authorization: Bearer token

Accept

Geben Sie */* an.

User-Agent

Geben Sie hier den Namen und die Version Ihrer Anwendung an (z. B. applicationName/applicationVersion). Sie müssen einen Wert verwenden, der dem RFC 7231-Standard entspricht.

X-Snowflake-Authorization-Token-Type

Geben Sie OAUTH an.

Beispiel

Im folgenden Python-Beispiel wird eine HTTP-Anforderung für den Client myApplication, Version 1.0 ausgegeben:

import requests
response = requests.get(url,
    headers={
      "User-Agent": "reg-tests",
      "Accept": "*/*",
      "X-Snowflake-Authorization-Token-Type": "OAUTH",
      "Authorization": """Bearer {}""".format(token)
      },
    allow_redirects=True)
print(response.status_code)
print(response.content)
Zurück zum Anfang