[英]How to upload image from local system to azure blob storage in c#
我正在尝试使用 c# 将图像文件从本地系统上传到 azure blob 存储。 下面是我正在使用的代码:
string storageConnectionString = "<connection_string>";
CloudStorageAccount storageacc = CloudStorageAccount.Parse(storageConnectionString);
CloudBlobClient blobClient = storageacc.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("myblob");
container.CreateIfNotExists();
CloudBlockBlob blockBlob = container.GetBlockBlobReference("images");
using (var filestream = System.IO.File.OpenRead(@"C:\\Users\\John\\Desktop\\11173.jpg"))
{
blockBlob.UploadFromStream(filestream);
}
我正在尝试创建名为myblob
容器,我可以看到它已创建。 在其中我创建了一个带有名称images
的 blob,然后将图像文件上传到其中。 但我看不到其中的图像文件。 上面的代码有什么问题。 如何将图像文件上传到 Blob 存储。 请帮忙。 谢谢
安装推荐的 nuget pkg "Azure.Storage.Blobs" ( https://www.nuget.org/packages/Azure.Storage.Blobs/ ) 后,以下代码在 .NET 核心中工作
public void PersistPhoto(IFormFile fileToPersist, string saveAsFileName)
{
string connectionString= "Azure Storage Connection String";
string containerName= "Azure Storage Container Name";
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);
try
{
// Get a reference to a blob
BlobClient blob = container.GetBlobClient(saveAsFileName);
// Open the file and upload its data
using (Stream file = fileToPersist.OpenReadStream())
{
blob.Upload(file);
}
uri = blob.Uri.AbsoluteUri;
}
catch
{
// log error
}
}
根据微软的说法,NuGet 包“Microsoft.Azure.Storage.Blob”现在已被弃用。
请尝试以下操作:
string storageConnectionString = "<connection_string>";
CloudStorageAccount storageacc = CloudStorageAccount.Parse(storageConnectionString);
CloudBlobClient blobClient = storageacc.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("myblob");
container.CreateIfNotExists();
CloudBlockBlob blockBlob = container.GetBlockBlobReference("images/11173.jpg");
blockBlob.Properties.ContentType = "image/jpg";
using (var filestream = System.IO.File.OpenRead(@"C:\\Users\\John\\Desktop\\11173.jpg"))
{
blockBlob.UploadFromStream(filestream);
}
基本上上面的代码将11173.jpg
保存为images/11173.jpg
。 Blob 名称实际上是images/11173.jpg
。
或者您可以尝试以下操作:
string storageConnectionString = "<connection_string>";
CloudStorageAccount storageacc = CloudStorageAccount.Parse(storageConnectionString);
CloudBlobClient blobClient = storageacc.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("myblob");
container.CreateIfNotExists();
CloudBlockBlob blockBlob = container.GetBlockBlobReference("11173.jpg");
blockBlob.Properties.ContentType = "image/jpg";
using (var filestream = System.IO.File.OpenRead(@"C:\\Users\\John\\Desktop\\11173.jpg"))
{
blockBlob.UploadFromStream(filestream);
}
我认为你有两件事错了。
它应该是这样的:
string storageConnectionString = "<connection_string>";
CloudStorageAccount storageacc = CloudStorageAccount.Parse(storageConnectionString);
CloudBlobClient blobClient = storageacc.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("images");
container.CreateIfNotExists();
CloudBlockBlob blockBlob = container.GetBlockBlobReference("11173.jpg");
using (var filestream = System.IO.File.OpenRead(@"C:\\Users\\John\\Desktop\\11173.jpg"))
{
blockBlob.UploadFromStream(filestream);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.