gpt4 book ai didi

azure - Xamarin 文本 blob Azure 存储

转载 作者:行者123 更新时间:2023-12-02 08:03:18 25 4
gpt4 key购买 nike

我正在使用 Azure 存储 blob 来存储图像,并尝试在我的 Xamrin.form 应用程序中显示它。我在github上找到了一个简单的教程和代码。

我已经按照以下步骤成功实现了它,并在 azure 存储 blob 上创建了一个帐户。

问题是:我可以看到文件的名称,但看不到“图像”

这是错误:

read started: <Thread Pool> #9
[0:] HTTP Request: Could not retrieve https://xxxxxx.blob.core.windows.net/yyyy/kakashi.jpg, status code NotFound
[0:] ImageLoaderSourceHandler: Could not retrieve image or image data was invalid: Uri: https://lxxxxxx.blob.core.windows.net/yyyy/kakashi.jpg
Thread finished: <Thread Pool> #4

教程如下: click to see

这是 Github: click to see

这是屏幕上的输出: enter image description here

当我放置图像的 URL 时出现此错误( https://lxxxxxx.blob.core.windows.net/yyyy/kakashi.jpg)在我的浏览器上:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>ResourceNotFound</Code>
<Message>
The specified resource does not exist. RequestId:97933c69-a01e-014f-6669-f0502e000000 Time:2018-05-20T18:33:28.4774584Z
</Message>
</Error>

最佳答案

该错误表示您没有将公共(public)访问级别设置为Blob

请参阅您的教程中的此要求。 enter image description here

您使用的代码需要此设置,因为它使用 blob Uri 直接访问 blob。

请参阅PhotosBlobStorageService.cs

return blobList.Select(x => new PhotoModel { Title = x.Name, Uri = x.Uri }).ToList();

如果您确实想保持私有(private)级别,则必须对上面的语句进行一些更改。这是引用。

return blobList.Select(x => new PhotoModel { Title = x.Name,
Uri = new Uri(x.Uri+x.GetSharedAccessSignature(
new SharedAccessBlobPolicy {
Permissions = SharedAccessBlobPermissions.Read|SharedAccessBlobPermissions.Write,
// you can modify the expiration to meet your requirement
SharedAccessExpiryTime = DateTime.UtcNow.AddYears(1)
} ))
}).ToList();

此更改允许您使用 SAS 访问私有(private) blob .

关于azure - Xamarin 文本 blob Azure 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50437944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com