- Categorias:
BUILD_SCOPED_FILE_URL¶
Gera um URL do arquivo Snowflake com escopo para um arquivo preparado usando o nome de estágio e o caminho relativo do arquivo como entradas.
Uma URL com escopo é codificada e permite o acesso a um arquivo especificado por um período limitado de tempo. O URL com escopo na saída é válido para o chamador até que o período de resultado da consulta persistente termine (até que o cache de resultados expire). Atualmente, esse período é de 24 horas.
Chame esta função SQL em uma consulta ou exibição. Você também pode usar esta função SQL para passar um URL com escopo definido para uma função definida pelo usuário (UDF) ou procedimento armazenado.
Sintaxe¶
BUILD_SCOPED_FILE_URL(
  @<stage_name> ,
  '<relative_file_path>' ,
  <use_privatelink_host_for_business_critical>)
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. 
- use_privatelink_host_for_business_critical
- Especifica se você deve anexar - privatelinka URL para contas Business Critical.- TRUEacrescenta- privatelinkao URL logo antes do nome do host; por exemplo,- privatelink.snowflakecomputing.com.- Nota - O Snowflake anexa - privatelinkao URL independentemente de você ter ativado a conectividade privada.
- FALSEsubstitui o comportamento padrão e não adiciona- privatelinkao URL.
 - Padrão: TRUE 
Retornos¶
A função retorna um URL com escopo no seguinte formato:
https://<account_identifier>/api/files/<query_id>/<encoded_file_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. 
- query_id
- ID da consulta da chamada BUILD_SCOPED_FILE_URL que gerou o URL com escopo. 
- encoded_file_path
- Caminho codificado para os arquivos a serem acessados usando o URL com escopo. 
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) - Definição da coluna em uma exibição - O proprietário da exibição (ou seja, a função com o privilégio OWNERSHIP na exibição) deve ter o privilégio de estágio: USAGE (estágio externo) ou READ (estágio interno). - Uma função que consulta a exibição exige apenas o privilégio SELECT nela. - 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 com escopo para o REST API deve ser configurado para permitir redirecionamentos. 
- Quando um URL com escopo é acessado, o histórico da consulta mostra que a função interna GET_SCOPED_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 com escopo para um arquivo de imagem em formato bitmap em um estágio externo:
SELECT BUILD_SCOPED_FILE_URL(@images_stage,'/us/yosemite/half_dome.jpg', TRUE);
https://my_account.snowflakecomputing.com/api/files/019260c2-00c0-f2f2-0000-4383001cf046/bXlfZGF0YWJhc2UvbXlfc2NoZW1hL215X3N0YWdlL2ZvbGRlcjEvZm9sZGVyMi9maWxlMQ
Criar uma exibição segura que filtre os resultados de uma chamada de função BUILD_SCOPED_FILE_URL para um público específico. Neste exemplo, consultar a exibição segura retorna somente aqueles arquivos no caminho do arquivo de estágio que incluem a cadeia de caracteres acct1:
-- Create a table that stores the relative file path for each staged file along with any other related data.
CREATE TABLE acct_table (
  acct_name string,
  relative_file_path string
);
-- Create a secure view on the table you created.
-- A role that has the SELECT privilege on the secure view has scoped access to the filtered set of files that include the acct1 text string.
CREATE SECURE VIEW acct1_files
AS
  SELECT BUILD_SCOPED_FILE_URL(@acct_files, relative_file_path, FALSE) scoped_url
  FROM acct_table
  WHERE acct_name = 'acct1';