如何在MS Azure中为blob存储中的blob提取上次修改日期

时间:2016-12-05 14:20:17

标签: python azure datetime azure-storage-blobs last-modified

我是MS Azure世界的新手。 我试图获取使用Python保存在我的blob存储中的一堆文件(块blob)的文件名和最后修改日期。这是我正在使用的代码:

import datetime
from azure.storage.blob import BlockBlobService
blob_service = BlockBlobService(account_name=account, account_key=acckey,protocol='http', request_session=sess)
blob_service.get_blob_to_path(container, pdfname, pdflocal)
generator = blob_service.list_blobs(container)
filenames = []
for blob in generator:
    print (blob.name)
    pdflocal = './' + blob.name
    properties=blob_service.get_blob_to_path(container, blob.name,pdflocal)
    date_year = datetime.datetime.fromtimestamp(os.path.getmtime("./"+blob.name) ).strftime('%Y-%m-%d %H:%M:%S')
    print (date_year)
    filenames.append(blob.name)
print len(filenames)

问题在于,代码尝试创建我的文件的副本,因此最后修改日期更新为当前日期和时间。如何在Azure ML Studio中访问实际的上次修改日期和时间?

我读到了Blob.Properties.LastModified,但它似乎不适用于python。这里令人困惑的事情之一是关于在CloudBlobs中转换blob。我不确定是否必须在Python脚本中完成,因为存储资源管理器中的blob有三种类型:Block,Page和Append。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:6)

听起来您希望在Azure ML Studio中使用Python获取Azure上的Blob的u_idx = np.append(False, np.diff(u) > tol).cumsum() max_idx = (np.append(np.unique(u_idx, return_index=1)[1], u_idx.size)-1)[1:] sidx = (v.max()*u_idx + v).argsort() m = ~np.in1d(np.arange(a.size), sidx[max_idx][np.bincount(u_idx)>1]) u_new, v_new, a_new = u[m], v[m], a[m] 属性。请尝试使用以下代码。

last_modified

如果您不确定是否存在哪个属性,您可以尝试在Python交互式环境中编写for blob in generator: last_modified = blob.properties.last_modified print(last_modified) 来显示Python对象的属性,例如,如下所示。

<object>.__dict__