欢迎访问宙启技术站
智能推送

使用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-containerexample-file.txt 替换为实际的容器名和文件名,然后运行上述代码。输出的只读访问链接将打印到控制台上。

请注意,在实际应用中,应该通过属性文件或环境变量来存储敏感信息,而不是直接在代码中硬编码。