- Categorias:
BUILD_STAGE_FILE_URL¶
Gera um URL do arquivo Snowflake para um arquivo preparado usando o nome de estágio e o caminho relativo do arquivo como entradas. Um URL de arquivo permite o acesso prolongado a um arquivo especificado. Ou seja, o URL do arquivo não expira.
Chame esta função SQL em uma consulta, função definida pelo usuário (UDF) ou procedimento armazenado.
Acesse os arquivos em um estágio enviando o URL do arquivo em uma solicitação ao REST API para suporte de arquivo. Quando os usuários enviam um URL de arquivo para o REST API para acessar arquivos, o Snowflake executa as seguintes ações:
- Autenticar o usuário. 
- Verifique se a função tem privilégios suficientes no estágio que contém o arquivo. 
- Redirecione o usuário para o arquivo preparado no serviço de armazenamento em nuvem. 
Sintaxe¶
BUILD_STAGE_FILE_URL( @<stage_name> , '<relative_file_path>' )
Argumentos¶
- stage_name
- Nome do estágio interno ou externo em que o arquivo está armazenado. - Nota - Se o nome do estágio incluir espaços ou caracteres especiais, ele deve ser colocado entre aspas simples (por exemplo, - '@"my stage"'para um estágio chamado- "my stage").
- relative_file_path
- Caminho e nome do arquivo em relação ao seu local no estágio. 
Retornos¶
A função retorna um URL do arquivo no seguinte formato:
https://<account_identifier>/api/files/<db_name>/<schema_name>/<stage_name>/<relative_path>
Onde:
- account_identifier
- Nome do host da conta Snowflake para seu estágio. O nome do host começa com um localizador de conta (fornecido pelo Snowflake) e termina com o domínio Snowflake ( - snowflakecomputing.com):- account_locator.snowflakecomputing.com- Para obter mais detalhes, consulte Identificadores de conta. - Nota - Para contas Business Critical, um segmento - privatelinké anexado ao URL logo antes de- snowflakecomputing.com(- privatelink.snowflakecomputing.com), mesmo se a conectividade privada ao serviço Snowflake são estiver habilitado para sua conta.- Importante - Atualmente, a função retorna o identificador da conta na forma de - organization_name-account_name. Quando um URL de arquivo é usado como entrada para uma solicitação GET, o ponto de extremidade do API retorna um erro.- Para resolver o erro, você deve converter manualmente o identificador da conta para a forma aplicável à sua conta: - account_locator.region_idou- account_locator.region_id.cloud- Para obter mais informações sobre estas formas, consulte Formato 2: Localizador de conta em uma região.. - Em um próximo lançamento, a função retornará os URLs do arquivo na forma correta. 
- db_name
- Nome do banco de dados que contém o estágio em que seus arquivos estão localizados. 
- schema_name
- Nome do esquema que contém o estágio em que seus arquivos estão localizados. 
- stage_name
- Nome do estágio em que seus arquivos estão localizados. 
- relative_path
- Caminho para os arquivos a serem acessados usando o URL do arquivo. 
Notas de uso¶
- As permissões exigidas para chamar esta função SQL diferem dependendo de como ela é chamada: - Operação SQL - Permissões exigidas - Consulta - USAGE (estágio externo) ou READ (estágio interno) - Procedimento armazenado - O proprietário do procedimento armazenado (ou seja, a função com o privilégio OWNERSHIP no procedimento armazenado) deve ter o privilégio de estágio: USAGE (estágio externo) ou READ (estágio interno). - Uma função que consulta o procedimento armazenado exige apenas o privilégio USAGE no procedimento armazenado. - UDF - O proprietário do UDF (ou seja, a função com o privilégio OWNERSHIP no UDF) deve ter o privilégio de estágio: USAGE (estágio externo) ou READ (estágio interno). - Uma função que consulta o UDF exige apenas o privilégio USAGE no UDF. 
- Um cliente HTTP que envia um URL de arquivo para o REST API deve ser configurado para permitir redirecionamentos. 
- Quando um URL de arquivo é acessado, o histórico da consulta mostra que a função interna GET_STAGE_FILE foi chamada. 
- 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.
Exemplos¶
Recuperar um URL de arquivo para um arquivo de imagem em formato bitmap em um estágio externo:
SELECT BUILD_STAGE_FILE_URL(@images_stage,'/us/yosemite/half_dome.jpg');
https://my_account.snowflakecomputing.com/api/files/MY_DB/PUBLIC/IMAGES_STAGE/us/yosemite/half_dome.jpg