【发布时间】:2021-05-08 13:14:39
【问题描述】:
如果 blob 已在 7 天前创建(无法修改),我正在尝试删除它,所以我需要
知道文件何时创建。
当我看到不仅blobItem.Properties.LastModified而且blobItem.Properties.CreatedOn
是可空的我开始谷歌搜索。
我读到即使 CreatedOn 在我上传 blob 时也没有真正设置。 (我为此使用DataLakeFileClient.UploadAsync)
Azure 存储资源管理器在 Blop 属性中仍显示 DateModified 但无法访问:
var blobServiceClient = new BlobServiceClient(StorageConnectionString);
var blobContainerClient = blobServiceClient.GetBlobContainerClient(containerName);
var blobItems = blobContainerClient.GetBlobsAsync();
await foreach (var blobItem in blobItems)
{
if (blobItem.Properties.CreatedOn.HasValue)
{
}
else
{ // always end up here
}
所以我尝试在存储资源管理器中设置元数据,但我也无法读取它们:
_logger.LogInformation(string.Join(';',blobItem.Metadata.Keys));
奇怪的是,它们在保存后也会在存储资源管理器中消失。
任何想法如何解决这些问题?
【问题讨论】:
-
您基本上是在尝试构建生命周期管理吗? ;) docs.microsoft.com/en-us/azure/storage/blobs/…
-
是的:D 我已经遇到过类似的东西,但这并不是我想要的。但是链接的文章看起来很有希望:)
-
总是更好地使用现有的东西然后重新发明轮子:)
-
@yBother,您使用的是哪种存储设备? general purpose v2 或 data lake storage v2,或其他?我看到您正在使用
DataLakeFileClient.UploadAsync上传文件,所以我想确认您使用的是哪个存储空间。 -
数据湖存储! ScheduleDeletion() 也可以选择吗?我可以像 await fileClient.ScheduleDeletionAsync(new DataLakeFileScheduleDeletionOptions(TimeSpan.FromMinutes(1), DataLakeFileExpirationOrigin.Now)) 一样使用它可以计费吗?生命周期管理规则是免费的。
标签: azure azure-blob-storage azure-storage-explorer