10

私が持っているリストと Azure の BLOB ストレージ内のファイルを比較する必要があります。必要なのは、その BLOB 内のファイルのリストを取得する方法だけです。

例えば

blob azureImages
files:
name
something.jpg
asd.jpg
iwda.jpg
my list:
name
something.jpg
asd.jpg

BLOB のファイルをリストと比較したときに、リストに一致しないファイルを削除したいと考えています。

4

1 に答える 1

22

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リストのすべてが返されます。

そして最後に、この例でブロブを削除できます

于 2012-10-15T18:53:59.723 に答える