2015-09-24 129 views
-1

我在Azure中創建了一個Web應用程序。這是一個使用microsoft asp.net創建的簡單網絡應用程序。我下載了我的天藍色個人資料,並使用Visual Studio發佈到天藍色的網絡應用程序。 Web應用程序中有一個圖像文件夾。當我發佈像魅力一樣上傳的所有圖像。然後我用使用Web客戶端對象WPF應用程序SmartClient的,並設置其憑據網絡憑據與用戶ID和我的蔚藍帳戶的密碼一起。但是當該行到達webclient.upload類型的方法時,我得到了401未授權的異常。它在我看來,當我嘗試上傳我的credentails不被視爲正確的。如果它是IIS,我知道該怎麼做。但在AZURE,我不知道我如何能給一個匿名用戶和訪問上傳圖像。任何意見或要點在這裏考慮?圖片上傳到Azure的

回答

0

如果你的圖片是不是你的應用程序的靜態部分,而是他們可以從你的應用程序(例如用戶上傳他的照片)創建我會建議使用,而不是文件系統Azure存儲(你不會鬆動的圖像由用戶上傳在你下一次部署之後)。

code以及使用GUI管理工具如CloudBerry Explorer可以很容易地管理Azure存儲。

0
  1. 添加名字空間

using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Auth; using Microsoft.WindowsAzure.Storage.Blob; 2.Adding類

public class blobservice 
    { 
     public CloudBlobContainer GetCloudBlobContainer() 
     { 
      string connString = "DefaultEndpointsProtocol=https;AccountName="";AccountKey=E"";"; 
      string destContainer = "mysample"; 
      CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connString); 
      CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); 
      CloudBlobContainer blobContainer = blobClient.GetContainerReference(destContainer); 

      if (blobContainer.CreateIfNotExists()) 
      { 
       blobContainer.SetPermissions(new BlobContainerPermissions 
       { 
        PublicAccess = BlobContainerPublicAccessType.Blob 
       }); 

      } 
      return blobContainer; 
     } 
    } 

3..aspx.cs 

blobservice _blobServices = new blobservice(); 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     blobservice _blobServices = new blobservice(); 
     Upload(); 
    } 

    public void Upload() 
    { 
     CloudBlobContainer blobContainer = _blobServices.GetCloudBlobContainer(); 
     CloudBlockBlob blob = blobContainer.GetBlockBlobReference("Sampleblob.jpg"); 
     WebClient wc = new WebClient(); 
     byte[] bytes = wc.DownloadData(Server.MapPath("~/Images/active.png")); 
     using (Stream ms = new MemoryStream(bytes)) 
     { 
      blob.UploadFromStream(ms); 
     } 
    } 
    protected void btnDelete_Click(object sender, EventArgs e) 
    { 
     string Name = "https://bikeimages.blob.core.windows.net/mysample/Sampleblob.jpg"; 
     Uri uri = new Uri(Name); 
     string filename = System.IO.Path.GetFileName(uri.LocalPath); 
     blobservice _blobServices = new blobservice(); 
     CloudBlobContainer blobContainer = _blobServices.GetCloudBlobContainer(); 
     CloudBlockBlob blob = blobContainer.GetBlockBlobReference(filename); 
     blob.Delete(); 
    }