REST-API zur 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¶
Authentifizieren Sie sich am REST-API-Endpunkt mit OAuth für kundenspezifische Clients. Erstellen Sie eine Sicherheitsintegration (mit CREATE SECURITY INTEGRATION), 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 kundenspezifische Clients finden Sie unter Snowflake OAuth für kundenspezifische 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 Authentifizierung am Server.
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 |
---|---|
|
Geben Sie hier Weitere Informationen dazu finden Sie unter Authentifizieren beim Server mit OAuth. Beispiel:
|
|
Geben Sie |
|
Geben Sie hier den Namen und die Version Ihrer Anwendung an (z. B. |
|
Geben Sie |
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)