asp.net – 将MemoryStream文件存储到Azure Blob
发布时间:2020-05-28 14:53:07 所属栏目:asp.Net 来源:互联网
导读:我有一个通过System.Drawing动态生成的图像.然后我将生成的图像输出到MemoryStream以存储到我的Azure blob中. 但我似乎无法将我的文件存储在我选择的blob中.没有错误发生,我的图像成功保存到MemoryStream.正如所料,我的blob是空的. 我确保我的blob容器具有公
|
我有一个通过System.Drawing动态生成的图像.然后我将生成的图像输出到MemoryStream以存储到我的Azure blob中. 但我似乎无法将我的文件存储在我选择的blob中.没有错误发生,我的图像成功保存到MemoryStream.正如所料,我的blob是空的. 我确保我的blob容器具有公共读/写访问权限. 码 // Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(String.Format("DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}",Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetConfigurationSettingValue("CMSAzureAccountName").ToString(),Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetConfigurationSettingValue("CMSAzureSharedKey").ToString()));
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("myimagecontainer");
// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("test.jpg");
//Output image
ImageCodecInfo[] Info = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders();
EncoderParameters Params = new System.Drawing.Imaging.EncoderParameters(1);
Params.Param[0] = new EncoderParameter(Encoder.Quality,100L);
System.IO.MemoryStream msImage = new System.IO.MemoryStream();
GenerateImage.Render(imageOutput).Save(msImage,Info[1],Params); //GenerateImage.Render() method creates a custom image and returns a Bitmap
// Create or overwrite the "myblob" blob with contents from a local file.
using (var fileStream = msImage)
{
blockBlob.UploadFromStream(fileStream);
}
任何帮助,将不胜感激. 更新 我设法找到了错误的主要原因.我需要更改以下内容: CloudStorageAccount storageAccount = CloudStorageAccount.Parse(String.Format("DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}",Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetConfigurationSettingValue("CMSAzureSharedKey").ToString()));
至 CloudStorageAccount storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("DiagnosticsConnectionString"));
但我会将“Gaurav Mantri”的回应标记为正确.如果不是他的见解,我的图像将不会上传到blob. 解决方法尝试将内存流的位置设置为0,看看是否有帮助.类似下面的代码:msImage.Position = 0;//Move the pointer to the start of stream.
// Create or overwrite the "myblob" blob with contents from a local file.
using (var fileStream = msImage)
{
blockBlob.UploadFromStream(fileStream);
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何在MVC 3中基于XML文件动态创建控件
- asp.net-mvc – ASP.NET MVC – 查看多个模型
- asp.net – 每个人如何存储连接字符串?
- asp.net-mvc – 可以在运行时更改数据注释吗? (ASP.NET MV
- castle-windsor – 如何在ASP.NET 4 RC WebAPI中将依赖注入
- asp.net-mvc-3 – 将数组传递给RouteValues,并将其渲染为粘
- asp.net-mvc – Html.CheckBox返回false如果禁用,即使selec
- asp.net-mvc – 在表单提交时传递整个模型
- asp.net – 什么放在会话变量中
- 如何在asp.net中实现文件下载
推荐文章
站长推荐
热点阅读
