gpt4 book ai didi

azure - 如何将授权 header 添加到 SAS URI?

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

我正在开发一个 POC,我必须创建一个模拟设备并连接到 IOT HUB,这部分是在某个外部应用程序向该设备的 IOT HUB 发送消息之后完成的。

消息包含 blob 存储 SAS URI,我需要将这个文件下载到设备。

模拟设备能够获取 SAS URI,但是当我开始下载以下文件时,我收到了错误。

线程“main”com.microsoft.azure.storage.StorageException 中出现异常:服务器无法对请求进行身份验证。确保授权 header 的值格式正确,包括签名。

如果我的方法错误,请纠正我,并针对此用例使用适当的方法纠正我。

private static void download(String message) throws StorageException, IOException, JSONException, URISyntaxException {
// need to download the file to simulator in folder
try {
JSONObject jsonObject = new JSONObject(message);
String sasUri = (String) jsonObject.get("fileUrl");
System.out.println("SAS URI from hub ->" + sasUri + " ");
URI url = new URI(sasUri);
//downloadFile(sasUri);
System.out.println("end of file download function");
CloudBlob blob = new CloudBlockBlob(url);
blob.downloadToFile("/path/to/download/file");
} catch(Exception e) {
e.printStackTrace();
}
}

下面是 SAS URI :-

https://********.blob.core.windows.net/test/testfile.zip?sv=2017-07-29&ss=b&srt=sco&sp=rwdlac&se=2018-04-16T13:33 :22Z&st=2018-04-16T05:00:22Z&spr=https&sig=************

我直接从 azure 门户获取 SAS URI,而不是在运行时生成。

提前致谢!

最佳答案

为了缩小问题范围,您可以尝试以下方法看看是否有帮助。

通过单击“下载”在 Azure 门户中获取 blob 的 URI,如下所示:

enter image description here

之后,文件将被下载。您可以在资源管理器下载历史记录中找到该 URI。 URI 格式如下:

https://[storage-account].blob.core.windows.net/testdownload/20180417_4.zip?sv=2017-07-29&ss=bqtf&srt=sco&sp=rwdlacup&se=2018-04-19T15:52:15Z&sig=[signature]

在下面的代码片段中直接使用这个URI就可以了。

            CloudBlob blob = new CloudBlockBlob(url);
await blob.DownloadToFileAsync(imgPath, System.IO.FileMode.CreateNew);

更新:从 Azure 门户获取blob 的绝对 URI 的另一种方法如下所示:

首先获取SAS token 。记下开始和到期日期/时间。 token 仅在该时间段内有效。

enter image description here

第二次获取blob URL

enter image description here

最后,完整的blob 的绝对 URIblob URL 加上 SAS token 。它会像这样:

https://ritastorageaccount.blob.core.windows.net/?sv=2017-07-29&ss=b&srt=sco&sp=rwdlac&se=2018-04-26T10:01:47Z&st=2018-04-26T02:01:47Z&spr=https&sig=[SIG]

关于azure - 如何将授权 header 添加到 SAS URI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49850849/

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