目前我在容器列表中获取所有blob,然后根据LastModified属性对其进行排序。如果容器中有大量blob,则会出现性能问题。
IEnumerable<IListBlobItem> blobsList = _sourceBlobStorageClient.BlobContainer.ListBlobs(null, false);
var blobItem = blobsList.Cast<CloudBlockBlob>().OrderBy(s => s.Properties.LastModified);
答案 0 :(得分:2)
不,没有更好的方法来实现这一目标。
答案 1 :(得分:0)
根据您的描述,您担心在容器中存在大量blob时从容器中检索最旧Blob的性能问题。正如赵兴路所说,没有更好的方法来实现这一目标。根据我的经验,我们可以尝试以下解决方法来提高性能。
由于blob的名称可能包含许多读取blob的应用程序解释为文件夹的'/'或'\'字符,因此我们可以尝试使用此功能来提高性能。
基本思路如下:
a)根据blob的修改时间将blob存储在格式为“{docs} / {year} / {month}”的目录中;
b)使用与blob的Modified-time相关联的前缀,以避免列出容器中的所有blob。
请参阅以下步骤,了解它是否对您有所帮助。
答案 2 :(得分:0)
嗨感谢您的回复。正如肇兴所说,没有更好的办法。我通过引入容器作为分阶段容器来使用解决方法。因此,无论第一次调用中获取的blob数量是多少,我都会转移到此阶段容器并从它们处理它。使用这种方法,我能够保存在listBlobs()调用上,因此我也看到了性能方面的改进。