本文整理汇总了C#中Microsoft.WindowsAzure.StorageClient.CloudBlobContainer.SetMetadata方法的典型用法代码示例。如果您正苦于以下问题:C# CloudBlobContainer.SetMetadata方法的具体用法?C# CloudBlobContainer.SetMetadata怎么用?C# CloudBlobContainer.SetMetadata使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.WindowsAzure.StorageClient.CloudBlobContainer
的用法示例。
在下文中一共展示了CloudBlobContainer.SetMetadata方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: UpdateStorage
///<summary>Updates the blobs in a storage container.</summary>
///<param name="container">The container to update.</param>
///<param name="newVersion">The new version being uploaded.</param>
///<param name="sourcePath">The directory on the local disk containing the new files.</param>
public static void UpdateStorage(CloudBlobContainer container, Version newVersion, string sourcePath)
{
container.FetchAttributes();
var remoteFiles = container.ListBlobs(Options).Cast<CloudBlob>().ToArray();
var oldBlobs = remoteFiles.ToDictionary(
blob => Path.Combine(sourcePath,
container.Uri.MakeRelativeUri(blob.Uri).ToString().Replace('/', '\\')
)
);
var baseUri = new Uri(sourcePath, UriKind.Absolute);
foreach (var file in new DirectoryInfo(sourcePath).EnumerateFiles("*", SearchOption.AllDirectories)) {
CloudBlob blob;
byte[] hash = file.SHA512Hash();
//If there already is a blob for this file, use it.
if (!oldBlobs.TryGetValue(file.FullName, out blob)) {
blob = container.GetBlobReference(baseUri.MakeRelativeUri(new Uri(file.FullName, UriKind.Absolute)).ToString());
} else {
oldBlobs.Remove(file.FullName); //Remove the blob from the dictionary; all blobs left in the dictionary will be deleted.
if (file.Length == blob.Properties.Length
&& Convert.FromBase64String(blob.Metadata["SHA512"]).SequenceEqual(hash))
continue; //If the blob is identical, don't re-upload it.
}
blob.Metadata["SHA512"] = Convert.ToBase64String(hash);
blob.UploadFile(file.FullName);
}
foreach (var blob in oldBlobs.Values)
blob.Delete();
container.Metadata["Version"] = newVersion.ToString();
container.SetMetadata();
}