gpt4 book ai didi

azure - 直接从 Azure Blob 存储提供私有(private)文件

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

我的网络应用程序允许用户上传文件。我想为此使用云 Azure Blob 存储。

由于下载会非常频繁(比上传更多)我希望节省服务器计算时间和带宽,并直接从 azure blob 服务器提供文件。

我相信通过 Firebase (Firestorage) 在 Google 云上可以实现这一点。您可以直接从客户端上传和下载。 (我知道身份验证和授权也由 firebase 管理,因此它使事情变得更容易)

Azure 上是否存在类似的机制/服务?

例如当用户单击 azure 存储下载链接时,触发器将检查 JWT 是否授权,并且数据将直接从 azure 存储发送到客户端

最佳答案

Azure Blob 存储也提供类似选项。您可以使用 Storage SDK访问容器并列出/下载 blob

使用 javascript 后端 您可以使用 SAS Token 或 Azure 存储 JavaScript 客户端库,除了 SAS Token 之外,还支持基于存储帐户 key 创建 BlobService 进行身份验证。但是,出于安全考虑,请使用由后端 Web 服务器使用存储访问策略生成的限时 SAS token 。

示例 here

编辑:

我没有完全回答上面的问题,但是如果您想访问 blob 存储或从 blob 存储下载任何文件,您可以使用普通的 http get 请求以及任何 JavaScript 应用程序生成的 SAS token 。

使用 Angualr:

uploadToBLob(files) {
let formData: FormData = new FormData();
formData.append("asset", files[0], files[0].name);
this.http.post(this.baseUrl + 'insertfile', formData)
.subscribe(result => console.log(result));
}

downloadFile(fileName: string) {
return this.http.get(this.baseUrl + 'DownloadBlob/' + fileName, { responseType: "blob" })
.subscribe((result: any) => {
if (result) {
var blob = new Blob([result]);
let saveAs = require('file-saver');
let file = fileName;
saveAs(blob, file);
this.fileDownloadInitiated = false;
}
}, err => this.errorMessage = err
);
}

但是,最佳实践(考虑安全性)是使用后端 API/Azure 函数来处理文件上传。

关于azure - 直接从 Azure Blob 存储提供私有(private)文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61441694/

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