使用 Python 版本 2 客户端库的 Azure 文件共享代码示例
本文介绍了使用适用于 Python 的 Azure 文件共享客户端库版本 2 的代码示例。
2023 年 3 月 31 日,我们停用了对不符合当前 Azure SDK 指南的 Azure SDK 库的支持。 新的 Azure SDK 库会定期更新,以推动一致的体验并增强安全态势。 建议转换到新的 Azure SDK 库,以利用新功能和关键安全更新。
尽管 2023 年 3 月 31 日之后仍然可以使用较旧的库,但它们将不再从 Microsoft 获得官方支持和更新。 有关详细信息,请参阅支持停用公告。
先决条件
使用 pip install
安装以下包:
pip install azure-storage-file
添加以下 import
语句:
from azure.storage.file import FileService
创建 Azure 文件共享
相关文章:使用 Python 进行 Azure 文件存储开发
以下代码示例使用 FileService 对象来创建共享(如果该共享不存在)。
file_service.create_share('myshare')
创建目录
相关文章:使用 Python 进行 Azure 文件存储开发
可以将文件置于子目录中,不必将其全部置于根目录中,以便对存储进行有效的组织。
以下代码会在根目录下创建名为 sampledir 的子目录。
file_service.create_directory('myshare', 'sampledir')
上传文件
相关文章:使用 Python 进行 Azure 文件存储开发
本部分会介绍如何将文件从本地存储上传到 Azure 文件存储。
Azure 文件共享至少包含文件可以驻留的根目录。 若要创建文件并上传数据,请使用以下任一方法:
这些方法用于在数据大小超过 64 MiB 时执行必要的分块。
create_file_from_path
从指定位置上传文件内容,create_file_from_stream
从已经打开的文件/流上传内容。 create_file_from_bytes
上传字节数组,create_file_from_text
使用指定的编码(默认为 UTF-8)上传指定的文本值。
下面的示例将 sunset.png 文件的内容上传到 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'))
枚举 Azure 文件共享中的文件和目录
相关文章:使用 Python 进行 Azure 文件存储开发
若要列出共享中的文件和目录,请使用 list_directories_and_files 方法。 此方法会返回一个生成器。 以下代码将共享中每个文件和目录的名称输出到控制台。
generator = file_service.list_directories_and_files('myshare')
for file_or_dir in generator:
print(file_or_dir.name)
下载文件
相关文章:使用 Python 进行 Azure 文件存储开发
若要从文件下载数据,请使用以下任一方法:
这些方法用于在数据大小超过 64 MiB 时执行必要的分块。
以下示例演示如何使用 get_file_to_path
下载 myfile 文件的内容,并将其存储到 out-sunset.png 文件。
file_service.get_file_to_path('myshare', None, 'myfile', 'out-sunset.png')
创建共享快照
相关文章:使用 Python 进行 Azure 文件存储开发
可以创建整个文件共享的时点副本。
snapshot = file_service.snapshot_share(share_name)
snapshot_id = snapshot.snapshot
使用元数据创建共享快照
metadata = {"foo": "bar"}
snapshot = file_service.snapshot_share(share_name, metadata=metadata)
列出共享和快照
相关文章:使用 Python 进行 Azure 文件存储开发
可以为特定的共享列出所有快照。
shares = list(file_service.list_shares(include_snapshots=True))
浏览共享快照
相关文章:使用 Python 进行 Azure 文件存储开发
可以浏览每个共享快照来检索相应时间点的文件和目录。
directories_and_files = list(
file_service.list_directories_and_files(share_name, snapshot=snapshot_id))
从共享快照获取文件
相关文章:使用 Python 进行 Azure 文件存储开发
可以从共享快照下载文件。 这使你可以还原文件的早期版本。
with open(FILE_PATH, 'wb') as stream:
file = file_service.get_file_to_stream(
share_name, directory_name, file_name, stream, snapshot=snapshot_id)
删除单个共享快照
相关文章:使用 Python 进行 Azure 文件存储开发
可以删除单个共享快照。
file_service.delete_share(share_name, snapshot=snapshot_id)
删除文件
相关文章:使用 Python 进行 Azure 文件存储开发
若要删除文件,请调用 delete_file。
以下代码示例展示了如何删除文件:
file_service.delete_file('myshare', None, 'myfile')
共享快照存在时,删除共享
相关文章:使用 Python 进行 Azure 文件存储开发
无法删除包含快照的共享,除非先删除所有快照。
以下代码示例展示了如何删除共享内容:
file_service.delete_share(share_name, delete_snapshots=DeleteSnapshot.Include)