私が持っているリストと Azure の BLOB ストレージ内のファイルを比較する必要があります。必要なのは、その BLOB 内のファイルのリストを取得する方法だけです。
例えば
blob azureImages files: name something.jpg asd.jpg iwda.jpg
my list:
name
something.jpg
asd.jpg
BLOB のファイルをリストと比較したときに、リストに一致しないファイルを削除したいと考えています。
CloudBlobContainer.ListBlobs()を使用してコンテナー内、またはCloudBlobDirectory.ListBlobs ()を使用してディレクトリ内のBLOBのリストを取得できます。
CloudBlobClient blobClient = new CloudBlobClient(blobEndpoint, new StorageCredentialsAccountAndKey(accountName, accountKey));
//Get a reference to the container.
CloudBlobContainer container = blobClient.GetContainerReference("container");
//List blobs and directories in this container
var blobs = container.ListBlobs();
foreach (var blobItem in blobs)
{
Console.WriteLine(blobItem.Uri);
}
blobItem.Uriからファイル名を解析する必要がありますが、LINQのExcept()メソッドを使用して違いを見つけることができます。
public string FindFilesToDelete(IEnumerable<string> fromAzure, IEnumerable<string> yourList)
{
return fromAzure.Except(yourList);
}
これにより、yourListにないfromAzureリストのすべてが返されます。
そして最後に、この例でブロブを削除できます