将图像上传到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存储可以通过代码和使用GUI管理工具(如CloudBerry Explorer)轻松管理。
- 添加名称空间
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();
}