當前位置: 首頁>>代碼示例>>C#>>正文


C# CloudBlobContainer.SetMetadata方法代碼示例

本文整理匯總了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();
        }
開發者ID:Amichai,項目名稱:Prax,代碼行數:40,代碼來源:AzureDataCache.cs


注:本文中的Microsoft.WindowsAzure.StorageClient.CloudBlobContainer.SetMetadata方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。