【发布时间】:2021-01-20 20:25:42
【问题描述】:
我正在使用 C# 控制台应用程序 (.NET Core 3.1) 从 Azure Blob 存储读取大量图像文件并生成这些图像的缩略图。新图像将保存回 Azure,并将 Blob ID 存储在我们的数据库中。如何找到已保存项目的 ID。这是命令:
Azure.Response<BlobContentInfo> blobs = containerClient.UploadBlob(fileName, outStream);
我似乎在返回的对象中找不到它
我的原始图片是使用 PowerApps 创建和保存的,其中控件确实返回 Blob ID - 见下文:
Set(
gblSentBlob,
AzureBlobStorage.CreateFile(
Text(gblAzureFileContainer),
GUID() & ".jpg",
camControl.Photo
)
);
If(
!IsEmpty(gblSentBlob),
Notify("Picture saved to Azure storage:" & gblSentBlob.DisplayName);
UpdateContext({locFileName: gblSentBlob.DisplayName});
UpdateContext({locAzureStorageID: Text(gblSentBlob.Id)}); // <- *** this is the Blob ID ***
UpdateContext({locSavedToAzure: true});
这里,AzureBlobStorage.CreateFile 函数返回一个包含我要查找的 ID 的对象。
如何在我的控制台应用程序中获取此 ID。
典型的 Blob ID 如下所示:
JTJmc2hpcmVibG9iY29udGFpbmVyJTJmNTk3MzQ4NGYtNGVhNy00NzJkLTkyMzQtYWIwNzM5NWNlOGRiLmpwZw==
然后我可以使用以下(在 PowerApps 中)检索要显示的图像
AzureBlobStorage.GetFileContent(ThisItem.BlobStorageID)
我的完整代码:
var blobClient = containerClient.GetBlobClient(blobName);
using Stream stream = await blobClient.OpenReadAsync();
Image myImage = Image.FromStream(stream);
Image myThumbnail = PictureProcessor.returnThumbnail(myImage);
// now save this image
string guid = Guid.NewGuid().ToString();
string fileName = guid + ".jpg";
//create a memory stream ready for the rescaled image
Stream outStream = new MemoryStream();
myThumbnail.Save(outStream, System.Drawing.Imaging.ImageFormat.Jpeg);
Console.WriteLine(
"Length = {0}, Position = {1}\n",
outStream.Length.ToString(),
outStream.Position.ToString());
outStream.Position = 0;
Azure.Response<BlobContentInfo> blobs = containerClient.UploadBlob(fileName, outStream);
Console.WriteLine("blobs RETURN OBJECT: " + blobs.ToString());
Console.WriteLine("blobs GetRawResponse: " + blobs.GetRawResponse());
Console.ReadKey();
【问题讨论】:
-
我很好奇这样的ID长什么样子。除了路径之外,Blob 没有专用的 id,我认为它是电源应用程序生成的东西或其他东西。您可以发布示例内容吗?另见stackoverflow.com/questions/63984830/…
-
@PeterBons - 我已将详细信息添加到原始问题中。
-
@Dai - 这是我正在寻找的 C# 代码,而不是 PowerApps 的东西。 PowerApp 已经可以正常工作了,谢谢。
标签: c# azure asp.net-core-3.1