2017-10-20 90 views
1

當我將jpg圖像上傳到Azure Blob存儲時,將其拉出,它總是以png形式返回。這是否可以承擔違約?我找不到任何文檔。當我將它從存儲容器中取出時,我可以很容易地將它轉換回JPG格式,但是我可以安全地假設存儲在Azure Blob存儲中的任何圖像類型都是以png格式完成的?Azure Blob存儲是否有默認圖像類型?

+0

你可以分享上傳圖片的代碼嗎? –

回答

0

最好不要認爲png是默認值。我認爲這取決於您的上傳機制以及您在上傳過程中爲文件提供的名稱。

0

,但我可以肯定地認爲是存儲在Azure的Blob存儲任何圖像類型爲PNG

據我所知,Blob存儲沒有默認的文件類型來完成的。它包含一個content-type,它可以告訴用戶文件的內容類型是。如果你設置blob名字是xxx.jpg。然後它會將xxx.jpg存儲在blob存儲中。

這裏是一個例子。

 CloudStorageAccount storageAccount = CloudStorageAccount.Parse("connection string"); 

     // Create the blob client. 
     CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); 

     // Retrieve a reference to a container. 
     CloudBlobContainer container = blobClient.GetContainerReference("mycontainer"); 

     // Create the container if it doesn't already exist. 
     container.CreateIfNotExists(); 

     CloudBlockBlob blockBlob = container.GetBlockBlobReference("brandotest.jpg"); 

     // Create or overwrite the "myblob" blob with contents from a local file. 
     using (var fileStream = System.IO.File.OpenRead(@"D:\1.PNG")) 
     { 
      blockBlob.UploadFromStream(fileStream); 
     } 

結果:

通過使用存儲資源管理器,你會發現在Blob存儲圖像的類型。這是brandotest.jpg。

enter image description here

我猜你設置下載圖像文件的類型,當您使用代碼下載。

像這樣(我設置下載文件的路徑myfile.png):

 CloudBlockBlob blockBlob = container.GetBlockBlobReference("brandotest.jpg"); 

     // Save blob contents to a file. 
     using (var fileStream = System.IO.File.OpenWrite(@"D:\authserver\myfile.png")) 
     { 
      blockBlob.DownloadToStream(fileStream); 
     } 

結果將myfile.png。

enter image description here

總而言之,該文件的類型時使用代碼來獲取或上傳你必須下載到本地或上傳到BLOB是根據你的設置。