Azure系列2.1.6 —— BlobProperties

时间:2021-10-31 15:31:46

  (小弟自学Azure,文中有不正确之处,请路过各位大神指正。)

  网上azure的资料较少,尤其是API,全是英文的,中文资料更是少之又少。这次由于公司项目需要使用Azure,所以对Azure的一些学习心得做下笔记,文中不正确地方请大家指正。

  Azure Blob 存储是用于存储大量非结构化对象数据(例如文本或二进制数据)的服务,这些数据可通过 HTTP 或 HTTPS 从世界各地进行访问。 可以使用 Blob 存储向外公开数据,或者私下存储应用程序数据。

  Blob 存储的常见用途包括:

    • 直接向浏览器提供图像或文档
    • 存储文件以供分布式访问
    • 对视频和音频进行流式处理
    • 存储数据以用于备份和还原、灾难恢复及存档
    • 存储数据以供本地或 Azure 托管服务执行分析

Package

com.microsoft.azure.storage.blob

Mean

blob的系统属性。

Inherited 

java.lang.Object ————> BlobProperties

Constructors 

    1. BlobProperties()
    2. BlobProperties(final BlobProperties other):复制一个已存在的blob来创建新的的实例。
    3. BlobProperties(final BlobType type):创建固定类型的blob实例

Method

    1. public Integer getAppendBlobCommittedBlockCount()、protected void setAppendBlobCommittedBlockCount(final Integer appendBlobCommittedBlockCount)

      如果blob是append blob,则获取提交的块的数量。

      2.public BlobType getBlobType()、protected void setBlobType(final BlobType blobType)

blob 类型,返回枚举值。

      3.public String getCacheControl()、public void setCacheControl(final String cacheControl)

      blob的缓存阀值。

      4.public String getContentDisposition()、public void setContentDisposition(final String contentDisposition)

      blob的内容阀值。

      5.public String getContentEncoding()、public void setContentEncoding(final String contentEncoding)

      blob编码。

      6.public String getContentLanguage()、public void setContentLanguage(final String contentLanguage)

      blob语言。

      7.public String getContentMD5()、public void setContentMD5(final String contentMD5)

      blob使用MD5加密后的值。

      8.public String getContentType()、public void setContentType(final String contentType)

      blob的内容类型值。

      9.public CopyState getCopyState()、protected void setCopyState(final CopyState copyState)

      复制状态,返回枚举值。

      10.public Date getDeletedTime()、protected void setDeletedTime(Date deletedTime)

      删除时间。

      11.public String getEtag()、protected void setEtag(final String etag)

获取blob的ETag值。ETag值是在对容器执行写操作时更新的唯一标识符。它可以被用于有条件地执行操作,提供并发控制和提高效率。AccessCondition#generateIfMatchCondition(String)和AccessCondition#generateIfNoneMatchCondition(String)方法采用ETag值,并返回可在请求中指定的AccessCondition对象。

      12.public Date getLastModified()、protected void setLastModified(final Date lastModified)

最后修改时间。

      13.public LeaseDuration getLeaseDuration()、protected void setLeaseDuration(final LeaseDuration leaseDuration)

      blob的租约持续时间,返回枚举值。

      14.public LeaseState getLeaseState()、protected void setLeaseState(final LeaseState leaseState)

      blob 的状态,返回枚举值Available, Breaking, Broken, Expired, Leased, Unspecified指的是Lease生命周期的五种状态.。其中Leased 和 Breaking属于locked状态,Expired, Broken, Available属于 unlocked。

      15.public LeaseStatus getLeaseStatus()、protected void setLeaseStatus(final LeaseStatus leaseStatus)

blob 的状态,返回枚举值Locked,UnLocked,Unspecified。您可以检查blob的锁状态以确定它当前是否具有活动锁(锁定为独占写入访问),或者是否可用于独占写入访问。

对于14与15 接口。在调用FetchAttributesAsync()之前,LeaseStatus和LeaseState的值都是Unspecified的。在调用函数之后, LeaseState是Available状态。使用AcquireLeaseAsync(),请求lease blob成功后,LeaseState的值会变成Leased。Leased状态的Blob,调用break有两种情况,Break的存在时间没有结束,会变成Breaking状态;如果break的时间结束了则转为Broken状态 。而Lease的生命期限到了,则变为Expired.

      16.public long getLength()、protected void setLength(final long length)

      blob的大小(以字节为单位)。

      17.public Long getPageBlobSequenceNumber()、protected void setPageBlobSequenceNumber(final Long pageBlobSequenceNumber)

      如果blob是一个页面blob,则获取页面blob的当前序列号。

      18.public PremiumPageBlobTier getPremiumPageBlobTier()、protected void setPremiumPageBlobTier(PremiumPageBlobTier premiumPageBlobTier)

      如果使用高级帐户,而blob是一个页面blob,则获取blob的层。

      19.public RehydrationStatus getRehydrationStatus()、protected void setRehydrationStatus(RehydrationStatus rehydrationStatus)

这个方法的意思将将archive转换成hot或cool从而能读取文档(所以读取文档前可以执行此方法转换blob层,已确保万一)。若要读取存档存储中的数据,必须先将Blob的层更改为热层或冷层,用getRehydrationStatus来获取Blob是否在热层或冷层。blob中的数据如果没有在热层或者冷层是无法读取的。创建blob的时候,如果没有指定,默认是hot层,

      20.public Integer getRemainingRetentionDays()、protected void setRemainingRetentionDays(Integer remainingRetentionDays)

      获取被删除的blob在服务中保存的天数。

      21.public StandardBlobTier getStandardBlobTier()、protected void setStandardBlobTier(StandardBlobTier standardBlobTier)

      如果使用标准帐户,而blob是块blob,则获取blob的层。

      22.public Date getTierChangeTime()、protected void setTierChangeTime(Date tierChangeTime)

      获取最后一次在blob上更改层的值。

      23.public Boolean isBlobTierInferred()、protected void setBlobTierInferred(Boolean isBlobTierInferredTier)

      用来测试getRehydrationStatus是否执行成功。

      24.public boolean isIncrementalCopy()、protected void setIncrementalCopy(boolean isIncrementalCopy)

      判断是否是blob是增量拷贝。

      25.public boolean isServerEncrypted()、protected void setServerEncrypted(boolean serverEncrypted)

      blob的服务器端加密状态。