CloudBlockBlob:DownloadTextAsync和UploadTextAsync以及元数据/属性

Xartal

就像在文档Azure docmsdn中一样,您必须调用FetchAttributesAsync()以填充CloudBlockBlob的元数据。

我注意到,元数据在调用时也会被填充,而在调用时会DownloadTextAsync()被写入UploadTextAsync()这样使用安全吗,因为它在存储sdk的将来版本中不会更改?我真的找不到任何可以证实这种行为的文档。

样本:

        var blob = container.GetBlockBlobReference("testblob");

        blob.Metadata["testdata"] = "set";

        await blob.UploadTextAsync("content");

        blob.Metadata["notset"] = "set";

        blob = container.GetBlockBlobReference("testblob");

        var content = await blob.DownloadTextAsync();
        // here content["testdata"] is set and content["notset"] is null

谢谢你告诉我这件事!

高拉夫·曼特里(Gaurav Mantri)

让我尝试解释您的代码发生了什么。看看是否可以澄清您的疑问。

当您执行以下代码时:

await blob.UploadTextAsync("content");

本质上,它调用Put BlobREST API。从REST API文档中可以看到,使用blob.Metadata["testdata"] = "set";代码指定的任何元数据元素都将传递到REST API的x-ms-meta-testdata标头中。

因此,当执行此代码时,元数据将与Blob一起保存。

当您执行以下代码行时:

blob.Metadata["notset"] = "set";

基本上,blob对象的(类型为CloudBlockBlobMetadata属性得到更新。此更新仅在客户端发生,并且任何内容都不会保存在Blob中。为了保存它,您必须致电SetMetadataAsync

最后一部分,当您执行以下代码行时:

var content = await blob.DownloadTextAsync();

本质上,它调用Get BlobREST API。从REST API文档中可以看到,此操作还将在响应标头中返回blob的元数据。然后,Azure Storage Client库使用接收到的数据作为对REST API调用的响应来更新Metadata属性blob

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CloudBlockBlob DownloadTextAsync行为差异

来自分类Dev

使用CloudBlockBlob作为输入触发器的元数据丢失

来自分类Dev

CLI:从视频文件中提取元数据和属性

来自分类Dev

坚持自定义元数据类别和属性

来自分类Dev

获取字典中不存在的CloudBlockBlob元数据密钥

来自分类Dev

DownloadText() 和 DownloadTextAsync() 有什么区别?

来自分类Dev

循环进入动态上下文数据集以及对象和属性

来自分类Dev

如果两者相同,如何匹配NSUserDefaults和CoreData属性以及获取数据

来自分类Dev

从导航属性获取元数据

来自分类Dev

从导航属性获取元数据

来自分类Dev

元编程和计算属性

来自分类Dev

ngModel和ngRepeat以及对属性的访问

来自分类Dev

SP元数据:属性entityID和Location中的物理地址

来自分类Dev

如何使用Python和h5py读取HDF5属性(元数据)

来自分类Dev

在JPA-RS元数据中,带有@Embeddable和@XmlPath(“。”)的属性未正确显示

来自分类Dev

SP元数据:属性entityID和Location中的物理地址

来自分类Dev

获取所有用户(+ 直接经理、照片元数据和“关于我”等属性)

来自分类Dev

什么是元数据?以及它在android中的用途是什么

来自分类Dev

MBeanOperationInfo和MBeanAttributeInfo元数据?

来自分类Dev

SPFieldUserValue和SharePoint元数据

来自分类Dev

读取Doctrine实体属性的元数据

来自分类Dev

Golang是否允许使用元数据或属性?

来自分类Dev

基于类属性/元数据的Autofac解析

来自分类Dev

CGImage没有属性/元数据(CGImageProperties)

来自分类Dev

添加属性元数据时发生异常

来自分类Dev

使用元数据位置更新属性

来自分类常见问题

元名称和元属性之间有什么区别?

来自分类Dev

CloudBlockBlob的OpenReadAsync和DownloadFromStreamAsync函数之间的区别

来自分类Dev

Delphi-在ClientDataSets之间发送TField属性以及数据

Related 相关文章

  1. 1

    CloudBlockBlob DownloadTextAsync行为差异

  2. 2

    使用CloudBlockBlob作为输入触发器的元数据丢失

  3. 3

    CLI:从视频文件中提取元数据和属性

  4. 4

    坚持自定义元数据类别和属性

  5. 5

    获取字典中不存在的CloudBlockBlob元数据密钥

  6. 6

    DownloadText() 和 DownloadTextAsync() 有什么区别?

  7. 7

    循环进入动态上下文数据集以及对象和属性

  8. 8

    如果两者相同,如何匹配NSUserDefaults和CoreData属性以及获取数据

  9. 9

    从导航属性获取元数据

  10. 10

    从导航属性获取元数据

  11. 11

    元编程和计算属性

  12. 12

    ngModel和ngRepeat以及对属性的访问

  13. 13

    SP元数据:属性entityID和Location中的物理地址

  14. 14

    如何使用Python和h5py读取HDF5属性(元数据)

  15. 15

    在JPA-RS元数据中,带有@Embeddable和@XmlPath(“。”)的属性未正确显示

  16. 16

    SP元数据:属性entityID和Location中的物理地址

  17. 17

    获取所有用户(+ 直接经理、照片元数据和“关于我”等属性)

  18. 18

    什么是元数据?以及它在android中的用途是什么

  19. 19

    MBeanOperationInfo和MBeanAttributeInfo元数据?

  20. 20

    SPFieldUserValue和SharePoint元数据

  21. 21

    读取Doctrine实体属性的元数据

  22. 22

    Golang是否允许使用元数据或属性?

  23. 23

    基于类属性/元数据的Autofac解析

  24. 24

    CGImage没有属性/元数据(CGImageProperties)

  25. 25

    添加属性元数据时发生异常

  26. 26

    使用元数据位置更新属性

  27. 27

    元名称和元属性之间有什么区别?

  28. 28

    CloudBlockBlob的OpenReadAsync和DownloadFromStreamAsync函数之间的区别

  29. 29

    Delphi-在ClientDataSets之间发送TField属性以及数据

热门标签

归档