我想将 Azure blob 下载到流中,然后将流转换为图像以调整大小,然后使用新名称将新图像上传到 Azure blob。现在我可以调整图像大小并上传流,但无法将具有新名称的流上传到 Azure。
这是我的代码:
Stream stream = blockBlob.OpenRead();
Image newImage;
Bitmap image = new Bitmap(stream);
newImage = new Bitmap(image, 20, 20);
var ms = new MemoryStream();
newImage.Save(ms, ImageFormat.Png);
ms.Position = 0;
blockBlob.UploadFromStream(ms);
最佳答案
这实际上非常简单。您可能需要做的是使用新的 blob 名称创建一个 CloudBlockBlob
实例,并将内容上传到其中。假设您希望在同一个容器中上传新文件,您可以执行以下操作:
Stream stream = blockBlob.OpenRead();
Image newImage;
Bitmap image = new Bitmap(stream);
newImage = new Bitmap(image, 20, 20);
var ms = new MemoryStream();
newImage.Save(ms, ImageFormat.Png);
ms.Position = 0;
var newBlob = blockBlob.Container.GetBlockBlobReference("new-blob-name.png");
newBlob.UploadFromStream(ms);
关于c# - 如何使用新名称将流上传到 Azure blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43370622/