由于不使用azure blob storage python,if_修改了_

2024-09-29 23:31:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Azure函数创建触发器,以每小时为基础聚合数据。触发器从blob存储中获取数据,为了避免将相同的数据聚合两次,我想添加一个条件,使我只处理最近一小时修改过的blob。在

我正在使用SDK,我的代码如下所示:

''' Timestamp variables for t.now and t-1 '''
timestamp = datetime.now(tz=utc)
timestamp_negative1hr = timestamp+timedelta(hours=1)

''' Read data from input enivonment '''

data = BlockBlobService(account_name='accname', account_key='key')
generator = data.list_blobs('directory')

dataloaded = []
for blob in generator:
    loader = data.get_blob_to_text('collection',blob.name, if_modified_since=timestamp_negative1hr)
    trackerstatusobjects = loader.content.split('\n')
    for trackerstatusobject in trackerstatusobjects:
        dataloaded.append(json.loads(trackerstatusobject))

当我运行这个时,我得到的错误是azure.common.AzureHttpError: The condition specified using HTTP conditional header(s) is not met。它还被指定是由于超时造成的。blob在我运行它时接收数据,因此在任何情况下它都不是正确的返回消息。如果我在时间戳的末尾添加.strftime("%Y-%m-%d %H:%M:%S:%z"),我会得到另一个错误AttributeError: 'str' object has no attribute 'tzinfo'。这一定意味着azure需要一个datetime对象,但由于某些原因它对我不起作用。在

有什么解决办法吗?谢谢


Tags: 数据keynamefordatadatetimeaccountgenerator

热门问题