Exemplos de código do compartilhamento de arquivo do Azure usando bibliotecas de clientes Python versão 2
Este artigo mostra exemplos de código que usam a versão 2 da biblioteca de clientes do compartilhamento de arquivo do Azure para Python.
Em 31 de março de 2023, descontinuamos o suporte para bibliotecas de SDK do Azure que não estão em conformidade com as diretrizes atuais do SDK do Azure. As novas bibliotecas do SDK do Azure são atualizadas regularmente para gerar experiências consistentes e fortalecer sua postura de segurança. É recomendável que você faça a transição para as novas bibliotecas do SDK do Azure para aproveitar os novos recursos e as atualizações críticas de segurança.
Embora as bibliotecas mais antigas ainda possam ser usadas após 31 de março de 2023, elas não receberão mais suporte e atualizações oficiais da Microsoft. Para obter mais informações, confira o anúncio de desativação do suporte.
Pré-requisitos
Instale o seguinte pacote usando pip install
:
pip install azure-storage-file
Adicione a instrução import
a seguir:
from azure.storage.file import FileService
Criar um compartilhamento de arquivo do Azure
Artigo relatado: Desenvolvimento para os Arquivos do Azure com Python
A seguir, o código de exemplo usa um objeto FileService para criar o compartilhamento se ele não existir.
file_service.create_share('myshare')
Criar um diretório
Artigo relatado: Desenvolvimento para os Arquivos do Azure com Python
Também é possível organizar o armazenamento colocando arquivos em subdiretórios em vez de manter todos eles no diretório raiz.
O código abaixo irá criar um subdiretório chamado sampledir sob o diretório raiz.
file_service.create_directory('myshare', 'sampledir')
Fazer upload de um arquivo
Artigo relatado: Desenvolvimento para os Arquivos do Azure com Python
Nesta seção, você vai aprender a carregar um arquivo do armazenamento local para os Arquivos do Azure.
Um compartilhamento de arquivo do Azure contém, no mínimo, um diretório raiz onde você pode armazenar os arquivos. Para criar um arquivo e carregar dados, use qualquer um dos seguintes métodos:
Esses métodos executam a parte necessária quando o tamanho dos dados excede 64 MiB.
create_file_from_path
carrega o conteúdo de um arquivo do caminho especificado e create_file_from_stream
carrega o conteúdo de um arquivo/fluxo já aberto. create_file_from_bytes
carrega uma matriz de bytes e create_file_from_text
carrega o valor do texto especificado usando a codificação especificada (padronizada para UTF-8).
O exemplo a seguir carrega o conteúdo do arquivo sunset.png no arquivo myfile.
from azure.storage.file import ContentSettings
file_service.create_file_from_path(
'myshare',
None, # We want to create this file in the root directory, so we specify None for the directory_name
'myfile',
'sunset.png',
content_settings=ContentSettings(content_type='image/png'))
Enumerar arquivos e diretórios em um Compartilhamento de Arquivos do Azure
Artigo relatado: Desenvolvimento para os Arquivos do Azure com Python
Use o método list_directories_and_files para listar os arquivos e diretórios em um compartilhamento. Esse método retorna um gerador. O código a seguir produz o nome de cada arquivo e diretório em um compartilhamento para o console.
generator = file_service.list_directories_and_files('myshare')
for file_or_dir in generator:
print(file_or_dir.name)
Baixar um arquivo
Artigo relatado: Desenvolvimento para os Arquivos do Azure com Python
Para baixar dados de um arquivo, use qualquer um dos seguintes métodos:
Esses métodos executam a parte necessária quando o tamanho dos dados excede 64 MiB.
O exemplo a seguir demonstra como usar get_file_to_path
para baixar o conteúdo do arquivo myfile e armazená-lo no arquivo out-sunset.png.
file_service.get_file_to_path('myshare', None, 'myfile', 'out-sunset.png')
Criar um instantâneo de compartilhamento
Artigo relatado: Desenvolvimento para os Arquivos do Azure com Python
Você pode criar uma cópia de ponto no tempo do seu compartilhamento de arquivo inteiro.
snapshot = file_service.snapshot_share(share_name)
snapshot_id = snapshot.snapshot
Criar instantâneo de compartilhamento com metadados
metadata = {"foo": "bar"}
snapshot = file_service.snapshot_share(share_name, metadata=metadata)
Listar compartilhamentos e instantâneos
Artigo relatado: Desenvolvimento para os Arquivos do Azure com Python
Você pode listar todos os instantâneos para um determinado compartilhamento.
shares = list(file_service.list_shares(include_snapshots=True))
Procurar instantâneo de compartilhamento
Artigo relatado: Desenvolvimento para os Arquivos do Azure com Python
Você pode navegar em cada instantâneo de compartilhamento para recuperar arquivos e diretórios a partir desse momento.
directories_and_files = list(
file_service.list_directories_and_files(share_name, snapshot=snapshot_id))
Obter arquivo de instantâneo de compartilhamento
Artigo relatado: Desenvolvimento para os Arquivos do Azure com Python
Você pode baixar um arquivo de um instantâneo de compartilhamento. Isso permite que você restaure uma versão anterior de um arquivo.
with open(FILE_PATH, 'wb') as stream:
file = file_service.get_file_to_stream(
share_name, directory_name, file_name, stream, snapshot=snapshot_id)
Excluir um único instantâneo de compartilhamento
Artigo relatado: Desenvolvimento para os Arquivos do Azure com Python
Você pode excluir um único instantâneo de compartilhamento.
file_service.delete_share(share_name, snapshot=snapshot_id)
Excluir um arquivo
Artigo relatado: Desenvolvimento para os Arquivos do Azure com Python
Use delete_file para excluir um arquivo.
O exemplo a seguir mostra como excluir um arquivo:
file_service.delete_file('myshare', None, 'myfile')
Excluir compartilhamento quando existem instantâneos de compartilhamento
Artigo relatado: Desenvolvimento para os Arquivos do Azure com Python
Um compartilhamento que contém instantâneos não pode ser excluído, a menos que todos os instantâneos sejam excluídos primeiro.
O exemplo a seguir mostra como excluir um compartilhamento:
file_service.delete_share(share_name, delete_snapshots=DeleteSnapshot.Include)