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 |
---|---|
|
Defina isso como Para obter mais informações, ver Autenticação no servidor usando OAuth. Por exemplo:
|
|
Defina esse valor como |
|
Defina esse valor como o nome e a versão de seu aplicativo (por exemplo, |
|
Defina esse valor como |
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)