何时用天蓝色创建块blob?

时间:2016-12-22 16:32:55

标签: c# azure azure-blob-storage

blob引用包含Properties LastModified DateTimeOffset?的{​​{1}}属性。但是,我找不到blob的创建日期(时间)。是否有我可以使用的标准API,或者我需要在meta中存储它?

    public async Task<IBlobMeta> GetBlobMetaAsync(string blobId)
        {
            if (IsNullOrWhiteSpace(blobId))
                throw new ArgumentException("Value cannot be null or whitespace.", nameof(blobId));

            var blob = await EnsureGetBlobById(blobId);
            await blob.FetchAttributesAsync();

            string clientBlobName;
            blob.Metadata.TryGetValue(BlobNameMetaKey, out clientBlobName);

            var length = blob.Properties.Length;
            var md5 = blob.Properties.ContentMD5;
            var lastModified = blob.Properties.LastModified.Value.ToUniversalTime().DateTime;
            var dateCreated= blob.Properties.???????;
            return new AzureBlobMeta(blobId, clientBlobName, length, md5, dateCreated);
  }

3 个答案:

答案 0 :(得分:2)

  

我可以使用标准API,还是需要将其存储在元数据中?

截至今天,您需要以blob元数据的形式存储此信息。在创建blob时,没有API可以告诉您。 blob的Last Modified属性会告诉您上次修改blob的时间。这可能是因为blob的内容已更改,或者其属性或元数据已更改。

答案 1 :(得分:1)

Created日期属性已从version 9.2.0开始在Storage Client Library中添加:

  

Blob:添加了对Blob创建时间属性的支持。

(自18年5月23日起,在Nuget上可用)

BlobProperties.cs中的声明方式如下:

/// <summary>
/// Gets the the creation time for the blob, expressed as a UTC value.
/// </summary>
/// <value>A <see cref="DateTimeOffset"/> containing the blob's creation time, in UTC format.</value>
public DateTimeOffset? Created { get; internal set; }

该类型是可空的DateTimeOffset,与LastModified属性相同。


值的来源来自REST API中的x-ms-creation-time标头,该标头已添加到version 2017-11-09中:

  

x-ms-creation-time 2017-11-09版及更高版本。创建Blob的日期/时间。日期格式遵循RFC 1123。

答案 2 :(得分:0)

它在类CloudBlob中可用,然后在Microsoft.Azure.Storage.Blob包中Properties.Created中可用