API REST pour la prise en charge des données non structurées¶
Cette rubrique décrit l’API REST utilisée pour accéder aux fichiers en zone de préparation.
Dans ce chapitre :
GET /api/files/
¶
Récupère (télécharge) un fichier de données à partir d’une zone de préparation interne ou externe.
Authentification¶
Authentifiez-vous auprès du point de terminaison de l’API REST en utilisant OAuth pour les clients personnalisés. Créez une intégration de sécurité (en utilisant CREATE SECURITY INTEGRATION) pour permettre à un client HTTP qui prend en charge OAuth (tel que cURL) de rediriger les utilisateurs vers une page d’autorisation et de générer des jetons d’accès pour accéder au point de terminaison de l’API REST. Pour plus d’informations sur la configuration de OAuth pour les clients personnalisés, voir Configurer Snowflake OAuth pour les clients personnalisés.
Notes sur l’utilisation¶
Envoyez l’URL scopée ou l’URL du fichier pour un fichier en zone de préparation dans la requête GET.
Générez une URL scopée en appelant la fonction BUILD_SCOPED_FILE_URL SQL.
Générez une URL de fichier en appelant la fonction BUILD_STAGE_FILE_URL SQL. Vous pouvez également interroger la table de répertoire pour la zone de préparation, si elle est disponible.
Authentifiez-vous auprès de Snowflake par l’intermédiaire de l’API SQL Snowflake en utilisant OAuth ou une authentification par paire de clés. Pour obtenir des instructions, voir Authentification auprès du serveur.
L’autorisation d’accès aux fichiers diffère selon qu’une URL scopée ou une URL de fichier est envoyée dans la requête GET :
- URL scopée:
Seul l’utilisateur qui a généré l’URL scopée peut utiliser l’URL pour accéder au fichier référencé.
- URL du fichier:
Tout rôle disposant de privilèges suffisants sur la zone de préparation peut accéder au fichier :
Zone de préparation externe : USAGE
Zone de préparation interne : READ
Un client HTTP qui envoie une URL (soit une URL scopée, soit une URL de fichier) vers l’API REST doit être configuré pour autoriser les redirections.
Si les fichiers téléchargés à partir d’une zone de préparation interne sont corrompus, vérifiez avec le créateur de zone de préparation que
ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')
est défini pour la zone de préparation.
En-têtes de requête¶
Les en-têtes de requête suivants s’appliquent à toutes les opérations :
En-tête |
Description |
---|---|
|
Donnez-lui la valeur Pour plus d’informations, voir Authentification au serveur à l’aide de OAuth. Par exemple :
|
|
Définissez ceci sur |
|
Indiquez le nom et la version de votre application (par exemple, |
|
Définissez ceci sur |
Exemple¶
L’exemple Python suivant émet une requête HTTP pour le client myApplication
version 1.0 :
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)