Use a API de Arquivos
Use a API de arquivos para ler, gravar, listar e excluir arquivos e diretórios por caminho. Funciona com arquivos em volumes do Unity Catalog, aos quais você se refere pelo caminho de volume absoluto, como /Volumes/<catalog>/<schema>/<volume>/<path>. As solicitações da API de arquivos 3.0 usam o prefixo de endpoint /api/3.0/fs e vão para o hostname regional do seu workspace. Para cada operação, parâmetro e cabeçalho, consulte a referência da API de arquivos 3.0.
Beta
Este recurso está em Beta. Para usá-lo, um administrador do workspace deve ativar a API de arquivos V3 com suporte a upload de arquivos grandes na página Prévias . Consulte Gerenciar prévias do Databricks.
O uso da API de arquivos pode incorrer em encargos de transferência de dados do Databricks.
Enviar solicitações para o hostname regional
Envie solicitações da API de arquivos 3.0 para o hostname regional do workspace ao qual o usuário solicitante pertence. O hostname regional tem o seguinte formato:
<workspace-id>.storage.<workspace-region>.<databricks-domain>
Por exemplo, 1234567890123456.storage.us-central1.gcp.databricks.com.
Para encontrar seu ID de workspace e região, use o console da account. Consulte Nomes de instâncias, URLs e IDs de workspace. Você também pode encontrar o ID de workspace na URL de implantação: em https://<databricks-instance>/?o=1234567890123456, o número após o= é o ID do workspace. A UI do workspace mostra a região abaixo do nome do workspace.
Configurar conectividade de rede
A API de arquivos 3.0 requer conectividade de rede da sua rede para o Databricks e do Databricks para o seu armazenamento.
Da sua rede ao Databricks
Se você permitir acesso público à internet para seu workspace, mas restringi-lo com um firewall, adicione à lista de permissões os intervalos de IP do plano de controle para sua região.
Inclua os IPs sob os serviços do Control Plane, incluindo o armazenamento default, o webapp e o SecureConnect. Consulte IPs de entrada para o plano de controle do Databricks.
Se você não permitir o acesso à Internet ao Databricks e se conectar através de um link privado front-end, crie um segundo link privado front-end para serviços de alto desempenho. Consulte Configurar o Private Service Connect de entrada para serviços de alto desempenho.
Do Databricks para o seu armazenamento
Se você permitir acesso público ao seu armazenamento, mas aplicar restrições de rede, coloque seus IDs de projeto em uma lista de permitidos em suas políticas de VPC Service Controls (VPC-SC).
Se você não permitir acesso público ao seu armazenamento, use o Google Cloud Private Service Connect para acessar seus recursos na cloud. Consulte Configurar conectividade privada com recursos em sua VPC.
Custos de rede Serverless serão aplicados. Consulte Entender os custos de rede do Databricks.
Upload de arquivos grandes
Uma única solicitação de upload aceita arquivos de até 5000 MiB. Para fazer upload de um arquivo maior, ou de um arquivo cujo tamanho é desconhecido quando o upload começa, use um upload multipart da API de Arquivos 3.0: comece uma sessão com a ação initiate-upload, faça upload de cada parte com PUT e, em seguida, monte as partes com a ação complete-upload. Para limites de partes e detalhes da solicitação, consulte Fazer upload de um arquivo e Executar uma ação em um arquivo.
Retomar um download interrompido
Para retomar um download interrompido, solicite os bytes restantes com um cabeçalho Range que começa no primeiro byte que você ainda não recebeu. Para garantir que o arquivo não mudou entre as solicitações, envie também If-Match com o ETag da sua primeira resposta:
GET /api/3.0/fs/files/Volumes/main/default/my-volume/large-file.bin
Range: bytes=1048576-
If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"
206 Partial Content
Content-Range: bytes 1048576-10485759/10485760
<binary data>
Se o arquivo foi alterado, o servidor retornará 412 Precondition Failed e você deve começar o download novamente. Combinar bytes de diferentes versões de um arquivo corrompe o resultado. Para a sintaxe de cabeçalho de Range, consulte Download um arquivo.
Solicitações condicionais
Use cabeçalhos condicionais para execução uma solicitação apenas quando o valor ETag ou Last-Modified atual do arquivo atender a uma condição definida por você. Para os cabeçalhos que cada operação suporta, consulte a referência da API de arquivos 3.0. Ao usá-los, observe o seguinte:
- Armazene o
ETagexatamente como o servidor o retorna, incluindo as aspas envolventes, e envie-o de volta inalterado. Não analise nem construa umETag. Last-Modifiedtem uma precisão de um segundo, entãoIf-Modified-SinceeIf-Unmodified-Sincenão conseguem detectar várias alterações no mesmo segundo. Para impedir que escritores concorrentes sobrescrevam as alterações uns dos outros, useIf-MatchouIf-None-Matchem vez disso.- Uma solicitação de leitura pode incluir no máximo dois cabeçalhos condicionais. Ao enviar dois, sua precedência segue a RFC 9110.
Versões da API de arquivos
A Files API 2.0 envia solicitações para o hostname do seu workspace com o prefixo de endpoint /api/2.0/fs. Ele não suporta upload de multipart e seu único cabeçalho condicional é If-Unmodified-Since em downloads. Consulte a referência da Files API 2.0.
Para mover o código da API de Arquivos 2.0 para a 3.0, faça as seguintes alterações:
- Envie solicitações para o hostname regional com o prefixo de endpoint
/api/3.0/fse configure a conectividade de rede. - Envie o cabeçalho
Content-Lengthem cada upload. Se você não souber o tamanho do arquivo com antecedência, use o upload multipart. - Espere
200 OKem vez de204 No Contentde um upload bem-sucedido. - Espere
204 No Contentquando você excluir um arquivo que não existe. Para obter404 Not Foundem vez disso, como na API de Arquivos 2.0, envieIf-Match: *.