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);
}
答案 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
中可用