Когда в Azure был создан блочный BLOB-объект?

Ссылка на большой двоичный объект содержит свойство Properties, которое имеет LastModified из DateTimeOffset?. Однако я не могу найти, когда была дата (время) создания блоба. Есть ли стандартный API, который я могу использовать, или мне нужно сохранить его в мета?

    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);
  }

person Mihail Shishkov    schedule 22.12.2016    source источник


Ответы (3)


Свойство даты Created добавлено в клиентскую библиотеку хранилища, начиная с версия 9.2.0:

Blobs: добавлена ​​поддержка свойства времени создания blob.

(Доступно в Nuget с 23 мая 2018 г.)

Вот как это объявлено в 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, допускающий значение NULL, такой же, как свойство LastModified.


Источником значения является заголовок x-ms-creation-time в REST API, который был добавлен в версия 2017-11-09:

x-ms-creation-time Версия 2017-11-09 и новее. Дата/время создания большого двоичного объекта. Формат даты соответствует RFC 1123.

person Dusklight    schedule 19.07.2018

Есть ли стандартный API, который я могу использовать, или мне нужно сохранить его в мета?

На сегодняшний день вам необходимо хранить эту информацию в виде метаданных BLOB-объектов. Нет API, который сообщил бы вам, когда был создан большой двоичный объект. Свойство Last Modified большого двоичного объекта указывает, когда последний раз изменялся большой двоичный объект. Это могло произойти из-за того, что содержимое большого двоичного объекта было изменено либо были изменены его свойства или метаданные.

person Gaurav Mantri    schedule 22.12.2016
comment
пожалуйста, в чем причина? Почему невозможно вывести эту информацию через API? - person marek_lani; 13.09.2017

Он доступен в классе CloudBlob, затем Properties.Created в пакете Microsoft.Azure.Storage.Blob.

person Krzysztof Madej    schedule 04.09.2020