Share via


Ejemplos de código del recurso compartido de archivos de Azure que usan bibliotecas cliente de Python versión 2

En este artículo, se muestran ejemplos de código que usan la versión 2 de la biblioteca cliente del recurso compartido de archivos de Azure para Python.

El 31 de marzo de 2023, se retiró el soporte técnico para las bibliotecas del SDK de Azure que no cumplen las directrices actuales del SDK de Azure. Las nuevas bibliotecas del SDK de Azure se actualizan periódicamente para impulsar experiencias coherentes y reforzar la posición de seguridad. Se recomienda realizar la transición a las nuevas bibliotecas del SDK de Azure para aprovechar las nuevas funcionalidades y las actualizaciones de seguridad críticas.

Aunque las bibliotecas anteriores todavía se pueden usar más allá del 31 de marzo de 2023, ya no recibirán soporte técnico oficial ni actualizaciones de Microsoft. Para obtener más información, consulte el anuncio de retirada de soporte técnico.

Requisitos previos

Instale el siguiente paquete con pip install:

pip install azure-storage-file

Agregue la siguiente instrucción import :

from azure.storage.file import FileService

Creación de un recurso compartido de archivos de Azure

Artículo relacionado: Desarrollo con Python para Azure Files

En el siguiente ejemplo de código, puede usar un objeto FileService para crear el recurso compartido si no existe.

file_service.create_share('myshare')

Creación de un directorio

Artículo relacionado: Desarrollo con Python para Azure Files

Para organizar el almacenamiento, coloque los archivos en los subdirectorios, en lugar de mantenerlos todos en el directorio raíz.

El código siguiente creará un subdirectorio denominado sampledir en el directorio raíz.

file_service.create_directory('myshare', 'sampledir')

Carga de un archivo

Artículo relacionado: Desarrollo con Python para Azure Files

En esta sección, aprenderá a cargar un archivo desde el almacenamiento local en Azure Files.

Un recurso compartido de archivos de Azure contiene como mínimo un directorio raíz donde pueden residir los archivos. Para crear un archivo y cargar datos, use cualquiera de los métodos siguientes:

Estos métodos que realizan la fragmentación necesaria cuando el tamaño de los datos supera los 64 MiB.

create_file_from_path carga el contenido de un archivo de la ruta de acceso especificada y create_file_from_stream carga el contenido de un archivo o secuencia ya abiertos. create_file_from_bytes carga una matriz de bytes y create_file_from_textcarga el valor de texto especificado con la codificación especificada (el valor predeterminado es UTF-8).

En el siguiente ejemplo se carga el contenido del archivo sunset.png en el archivo 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 los archivos y directorios de un recurso compartido de Azure File

Artículo relacionado: Desarrollo con Python para Azure Files

Para mostrar los archivos y los directorios de un recurso compartido, use el método list_directories_and_files. Este método devuelve un generador. El código siguiente ofrece el nombre de todos los archivos y el directorio de un recurso compartido de la consola.

generator = file_service.list_directories_and_files('myshare')
for file_or_dir in generator:
    print(file_or_dir.name)

Descarga de un archivo

Artículo relacionado: Desarrollo con Python para Azure Files

Para descargar datos de un archivo, use cualquiera de los métodos siguientes:

Estos métodos que realizan la fragmentación necesaria cuando el tamaño de los datos supera los 64 MiB.

En el ejemplo siguiente se muestra cómo usar get_file_to_path para descargar el contenido en el archivo myfile y almacenarlo en el archivo out-sunset.png.

file_service.get_file_to_path('myshare', None, 'myfile', 'out-sunset.png')

Creación de una instantánea de recurso compartido

Artículo relacionado: Desarrollo con Python para Azure Files

Puede crear una copia a un punto dado de todo el recurso compartido de archivos.

snapshot = file_service.snapshot_share(share_name)
snapshot_id = snapshot.snapshot

Creación de una instantánea de recurso compartido con metadatos

metadata = {"foo": "bar"}
snapshot = file_service.snapshot_share(share_name, metadata=metadata)

Enumeración de recursos compartidos e instantáneas

Artículo relacionado: Desarrollo con Python para Azure Files

Puede enumerar todas las instantáneas para un recurso compartido determinado.

shares = list(file_service.list_shares(include_snapshots=True))

Examinación de instantáneas de recurso compartido

Artículo relacionado: Desarrollo con Python para Azure Files

Puede examinar cada instantánea de recurso compartido para recuperar archivos y directorios desde ese punto dado.

directories_and_files = list(
    file_service.list_directories_and_files(share_name, snapshot=snapshot_id))

Obtención del archivo desde una instantánea de recurso compartido

Artículo relacionado: Desarrollo con Python para Azure Files

Puede descargar un archivo desde una instantánea de recurso compartido. Esto le permite restaurar una versión anterior de un archivo.

with open(FILE_PATH, 'wb') as stream:
    file = file_service.get_file_to_stream(
        share_name, directory_name, file_name, stream, snapshot=snapshot_id)

Eliminación de una instantánea de recurso compartido única

Artículo relacionado: Desarrollo con Python para Azure Files

Puede eliminar una instantánea de recurso compartido única.

file_service.delete_share(share_name, snapshot=snapshot_id)

Eliminación de un archivo

Artículo relacionado: Desarrollo con Python para Azure Files

Para eliminar un archivo, llame a delete_file.

En el código de ejemplo siguiente, se muestra cómo eliminar un directorio:

file_service.delete_file('myshare', None, 'myfile')

Eliminación de un recurso compartido cuando existen instantáneas de recurso compartido

Artículo relacionado: Desarrollo con Python para Azure Files

No se puede eliminar un recurso compartido que contenga instantáneas a no ser que todas las instantáneas se eliminen primero.

En el código de ejemplo siguiente, se muestra cómo eliminar un recurso compartido:

file_service.delete_share(share_name, delete_snapshots=DeleteSnapshot.Include)