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

Authorization

Donnez-lui la valeur Bearer, suivie du jeton OAuth utilisé pour s’authentifier auprès de Snowflake.

Pour plus d’informations, voir Authentification au serveur à l’aide de OAuth.

Par exemple :

Authorization: Bearer token

Accept

Définissez ceci sur */*.

User-Agent

Indiquez le nom et la version de votre application (par exemple, applicationName/applicationVersion). Vous devez utiliser une valeur conforme à la norme RFC 7231.

X-Snowflake-Authorization-Token-Type

Définissez ceci sur OAUTH.

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)
Copy