gpt4 book ai didi

python - 设置在使用 BlobServiceClient 创建的 Azure Blob 容器中的生存时间

转载 作者:行者123 更新时间:2023-12-03 03:24:11 31 4
gpt4 key购买 nike

我当前正在使用以下设置在 Azure 存储帐户中创建容器,并将 blob 写入这些容器:

from azure.storage.blob import BlobServiceClient

connstr = "..."
bsc = BlobServiceClient.from_connection_string(connstr)
container_client = bsc.create_container(name="some_container")
blob_client = container_client.upload_blob("some_blob", data="data_item", metadata={})

但在此流程中,我找不到为这些 Blob 或容器设置生存时间(TTL 或最大生命周期时间)的方法。

据我了解,您可以使用 blob storage lifecycle management rules 为存储帐户创建规则。 ,但这会使脚本变得非常复杂。理想情况下,我希望能够为每个容器设置不同的 blob-TTL。我在这里遗漏了什么吗?

最佳答案

下面是在 Azure Blob 对象中设置 TTL 属性的 Python 代码片段:

代码:-

import time
from datetime import datetime
from azure.storage.blob import BlobServiceClient

#Code - Initialize Connection String of Azure Storage and Container name using python
blob_client = container_client.upload_blob("sampleblob.txt", data="data_item", metadata={"expiration_time": "2023-05-15T13:54:21Z"})

def check_and_enforce_ttl(container_client):

blobs = container_client.list_blobs()
current_time = int(time.time())

for blob in blobs:
blob_properties = blob_client.get_blob_properties()
metadata = blob_properties.metadata

ttl = metadata.get("ttl")
if ttl is not None:
ttl_seconds = int(ttl)

creation_time_timestamp = int(blob_properties.creation_time.timestamp())
delete_time = creation_time_timestamp + ttl_seconds

if current_time >= delete_time:
blob_client.delete_blob()
print(f"Blob '{blob.name}' has expired and has been deleted.")
else:
pass
check_and_enforce_ttl(container_client)

输出:-

enter image description here

有关初始化 Azure Blob 存储连接字符串并使用 Python 代码检索 Blob 元数据信息,请参阅此 MS Doc1 & Doc2 .

关于python - 设置在使用 BlobServiceClient 创建的 Azure Blob 容器中的生存时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76016458/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com