REST API para suporte de dados não estruturados

Este tópico descreve o REST API usado para acessar arquivos preparados.

Neste tópico:

GET /api/files/

Recupera (baixa) um arquivo de dados de um estágio interno ou externo.

Autenticação

Autenticar no ponto de extremidade do REST API usando OAuth para clientes personalizados. Crie uma integração de segurança (usando CREATESECURITYINTEGRATION) para habilitar um cliente HTTP que ofereça suporte a OAuth (como cURL) a redirecionar os usuários para uma página de autorização e gerar tokens de acesso para acesso ao ponto de extremidade do REST API. Para obter mais informações sobre a configuração de OAuth para clientes personalizados, consulte Configuração do Snowflake OAuth para clientes personalizados.

Notas de uso

  • Enviar o URL com escopo ou o URL de arquivo para um arquivo preparado na solicitação GET.

    • Gerar um URL com escopo, chamando a função BUILD_SCOPED_FILE_URL SQL.

    • Gerar um arquivo URL chamando a função BUILD_STAGE_FILE_URL SQL. Como alternativa, consulte a tabela de diretório para o preparo, se disponível.

  • Autenticar no Snowflake através do Snowflake SQL API usando OAuth ou autenticação de par de chaves. Para obter instruções, consulte Autenticação no servidor.

  • A autorização para acessar arquivos é diferente conforme seja enviado um URL com escopo ou um URL de arquivo é enviado na solicitação GET:

    URL com escopo

    Somente o usuário que gerou o URL com escopo pode usar o URL para acessar o arquivo referenciado.

    URL do arquivo

    Qualquer função que possua privilégios suficientes no preparo pode acessar o arquivo:

    • Preparo externo: USAGE

    • Preparo interno: READ

  • Um cliente HTTP que envia um URL (URL com escopo ou URL de arquivo) para o REST API deve ser configurado para permitir redirecionamentos.

  • Se os arquivos baixados de um estágio interno estiverem corrompidos, verifique com o criador do estágio se ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE') está definido para o estágio.

Cabeçalhos de solicitação

Os seguintes cabeçalhos de solicitação se aplicam a todas as operações:

Cabeçalho

Descrição

Authorization

Defina isso como Bearer seguido pelo símbolo token OAuth usado para autenticar no Snowflake.

Para obter mais informações, ver Autenticação no servidor usando OAuth.

Por exemplo:

Authorization: Bearer token

Accept

Defina esse valor como */*.

User-Agent

Defina esse valor como o nome e a versão de seu aplicativo (por exemplo, applicationName/applicationVersion). Você deve usar um valor que esteja de acordo com o RFC 7231.

X-Snowflake-Authorization-Token-Type

Defina esse valor como OAUTH.

Exemplo

O seguinte exemplo de Python emite um pedido de HTTP para o myApplication cliente versão 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