Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo mostra exemplos de código que usam a versão 2 da biblioteca de cliente do Compartilhamento de Arquivos do Azure para Python.
Em 31 de março de 2023, desativamos o suporte para bibliotecas do 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 promover experiências consistentes e fortalecer a sua postura de segurança. É recomendável fazer 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, consulte o anúncio de aposentadoria de suporte.
Instale o seguinte pacote usando pip install
:
pip install azure-storage-file
Adicione a seguinte import
instrução:
from azure.storage.file import FileService
Artigo relacionado: Desenvolvimento para o Azure Files com Python
O exemplo de código a seguir usa um objeto FileService para criar o compartilhamento se ele não existir.
file_service.create_share('myshare')
Artigo relacionado: Desenvolver para Azure Files com Python
Você pode organizar o armazenamento colocando arquivos dentro de subdiretórios em vez de ter todos eles no diretório raiz.
O código abaixo criará um subdiretório chamado sampledir no diretório raiz.
file_service.create_directory('myshare', 'sampledir')
Artigo relacionado: Desenvolvimento para Azure Files com Python
Nesta seção, você aprenderá como carregar um arquivo do armazenamento local no Azure Files.
Um compartilhamento de arquivos do Azure contém, pelo menos, um diretório raiz onde os arquivos podem residir. Para criar um arquivo e carregar dados, use qualquer um dos seguintes métodos:
- create_file_from_path
- criar_ficheiro_a_partir_de_fluxo
- criar_ficheiro_a_partir_de_bytes
- criar_ficheiro_a_partir_de_texto
Esses métodos executam a fragmentação necessária quando o tamanho dos dados excede 64 MiB.
create_file_from_path
Carrega o conteúdo de um arquivo a partir 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 de texto especificado usando a codificação especificada (padrão 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'))
Artigo relacionado: Desenvolver para arquivos do Azure com Python
Para listar os arquivos e diretórios em um compartilhamento, use o método list_directories_and_files . Este método devolve um gerador. O código a seguir gera 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)
Artigo relacionado: Desenvolver para arquivos do Azure com Python
Para baixar dados de um arquivo, use qualquer um dos seguintes métodos:
Esses métodos executam a fragmentação necessária quando o tamanho dos dados excede 64 MiB.
O exemplo a seguir demonstra o uso 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')
Artigo relacionado: Desenvolvimento para o Azure Files com Python
Você pode criar uma cópia point-in-time de todo o compartilhamento de arquivos.
snapshot = file_service.snapshot_share(share_name)
snapshot_id = snapshot.snapshot
Criar instantâneo de partilha com metadados
metadata = {"foo": "bar"}
snapshot = file_service.snapshot_share(share_name, metadata=metadata)
Artigo relacionado: Desenvolver com os ficheiros do Azure usando Python
Você pode listar todos os instantâneos de um compartilhamento específico.
shares = list(file_service.list_shares(include_snapshots=True))
Artigo relacionado: Desenvolver aplicações para o Azure Files 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))
Artigo relacionado: Desenvolvimento para Ficheiros do Azure com Python
Você pode baixar um arquivo de uma captura de partilha. 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)
Artigo relacionado: Desenvolver para o Azure Files usando Python
Você pode apagar um único instantâneo de compartilhamento.
file_service.delete_share(share_name, snapshot=snapshot_id)
Artigo relacionado: Desenvolver com o Azure Files em Python
Para excluir um arquivo, chame delete_file.
O exemplo de código a seguir mostra como excluir um arquivo:
file_service.delete_file('myshare', None, 'myfile')
Artigo relacionado: Desenvolver para Azure Files 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 de código a seguir mostra como excluir um compartilhamento:
file_service.delete_share(share_name, delete_snapshots=DeleteSnapshot.Include)