使用Python在AzureBlob存储中将文件转换为只读访问
发布时间:2023-12-19 00:42:52
使用Python在Azure Blob存储中将文件转换为只读访问,首先需要安装azure-storage-blob库:
pip install azure-storage-blob
接下来,我们可以编写以下代码来完成将文件转换为只读访问的操作,并提供一个使用例子:
from azure.storage.blob import BlobServiceClient, BlobSasPermissions, generate_blob_sas
# 替换为你的存储连接字符串
connection_string = "<your-connection-string>"
# 替换为你的容器名称
container_name = "<your-container-name>"
# 替换为你的文件名称
file_name = "<your-file-name>"
# 替换为你的存储账户名称
account_name = "<your-account-name>"
# 替换为你的存储账户密钥
account_key = "<your-account-key>"
# 创建 BlobServiceClient 实例,用于连接 Azure Blob 存储
blob_service_client = BlobServiceClient.from_connection_string(connection_string)
# 获取 BlobContainerClient 实例,用于操作容器
container_client = blob_service_client.get_container_client(container_name)
# 获取 BlobClient 实例,用于操作文件
blob_client = container_client.get_blob_client(file_name)
# 生成一个只读 SAS Token
sas_token = generate_blob_sas(
account_name=account_name,
container_name=container_name,
blob_name=file_name,
account_key=account_key,
permission=BlobSasPermissions(read=True),
expiry=datetime.utcnow() + timedelta(hours=1)
)
# 获取只读访问的链接
readonly_url = blob_client.url + "?" + sas_token
# 输出只读访问链接
print("只读访问链接:", readonly_url)
上述代码首先使用连接字符串创建一个 BlobServiceClient 实例,用于连接 Azure Blob 存储。然后,通过 BlobServiceClient 实例获取容器和文件的客户端。
接下来,我们使用 generate_blob_sas 方法生成一个只读的 SAS Token,并将其附加到文件的 URL 中,生成一个只读访问链接。
最后,我们将只读访问链接输出到控制台。
使用例子:
假设我们要将容器名为 example-container 中的文件 example-file.txt 转换为只读访问。我们可以将 example-container、example-file.txt 替换为实际的容器名和文件名,然后运行上述代码。输出的只读访问链接将打印到控制台上。
请注意,在实际应用中,应该通过属性文件或环境变量来存储敏感信息,而不是直接在代码中硬编码。
