将图像上传到Azure

本文关键字:Azure 图像 | 更新日期: 2023-09-27 18:14:25

我在Azure上创建了一个web应用程序。这是一个使用微软asp .net创建的简单的web应用程序。我下载了我的azure配置文件,并使用visual studio发布到azure web应用程序。在web应用程序中有一个图像文件夹。当我发布所有上传的图像时,就像一个魅力。然后我使用了一个使用web客户端对象的WPF智能客户端应用程序,并将其凭据设置为网络凭据以及我的azure帐户的用户id和密码。但是当线到达web客户端。上传的方法,我得到一个401未经授权的异常。在我看来,当我试图上传我的凭证不被认为是正确的。如果是我,我知道该怎么做。但是在AZURE中,我不确定如何给匿名用户和访问权限来上传图像。这里有什么意见或要点需要考虑吗?

将图像上传到Azure

如果您的图像不是应用程序的静态部分,而是可以从应用程序中创建(例如用户上传他的图片),我建议使用Azure存储而不是文件系统(您不会在下次部署后丢失用户上传的图像)。

Azure存储可以通过代码和使用GUI管理工具(如CloudBerry Explorer)轻松管理。

  1. 添加名称空间

using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Auth; using Microsoft.WindowsAzure.Storage.Blob; 2.添加类

 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();
    }