如何从Azure Blob存储返回的ResourceProperties对象中查看状态?
如何从Azure Blob的ResourceProperties对象查看操作状态
嘿,作为Azure新手遇到这个问题太正常啦!我来帮你拆解一下~
首先要明确一个关键点:Azure Storage Python SDK的create_blob_from_stream方法,如果Blob创建操作失败,会直接抛出异常(比如StorageErrorException),不会返回ResourceProperties对象。所以只要你能拿到这个对象,就说明你的文件已经成功上传到Blob存储了!
不过如果你想从这个对象里获取更多操作相关的状态或Blob元数据,可以直接访问它的属性,或者用下面的方法查看所有可用信息:
查看所有属性和值
你可以用Python内置的vars()函数来打印这个对象的所有属性及其对应的值,这样就能一目了然看到所有可用的信息:
print(vars(response))
常用的状态/元数据属性
这里列几个实用的属性,帮你确认操作状态和Blob信息:
response.last_modified:返回datetime类型的时间戳,代表Blob最后被修改的时间,能直接证明上传操作完成response.etag:返回字符串类型的ETag值,每个Blob的ETag都是唯一的,每次修改Blob都会更新这个值,也是操作成功的有力标志response.content_length:返回Blob的字节大小,可以和你上传的文件大小做对比,确认上传完整性response.content_type:返回Blob的内容类型,比如text/plain、image/jpeg等
举个实际使用的例子:
# 打印关键状态信息 print(f"Blob上传成功!") print(f"最后修改时间: {response.last_modified}") print(f"Blob ETag: {response.etag}") print(f"上传文件大小: {response.content_length} bytes")
额外建议:添加异常捕获
为了更稳妥地处理可能的错误,建议在代码里加上异常捕获逻辑,这样能明确处理上传失败的情况:
from azure.storage.blob import StorageErrorException try: response = block_blob_service.create_blob_from_stream(settings.CONTAINER_NAME+"/"+"headers", s3_key, file_upload) # 操作成功时的逻辑 print(f"Blob创建成功,ETag: {response.etag}") except StorageErrorException as e: # 操作失败时的逻辑 print(f"Blob上传失败,错误信息: {e}")
内容的提问来源于stack exchange,提问作者padmaja cherukuri
相关产品推荐
相关产品推荐

