javascript - 如何使用环境变量为浏览器实现Microsoft Azure Blob存储?

标签 javascript node.js azure azure-blob-storage parceljs

我正在尝试实现一个连接到 Microsoft Azure 的 Web 应用程序,以便将文件上传到其云存储。我一直关注的文档是在浏览器中使用 JavaScript v12 SDK 管理 blob。其教程如下:

https://learn.microsoft.com/en-us/azure/storage/blobs/quickstart-blobs-javascript-browser

文档明确指出,要在网站上使用 Azure SDK 库,必须使用捆绑程序将代码转换为在浏览器中运行。建议的捆绑程序是 parcel-bundler

我已经很好地构建了该项目,并且按照教程概述,一切都在浏览器中运行,但是在模糊 API key 方面我遇到了问题。

替代教程解释了使用 Node.js 上传 Azure blob,建议使用环境变量:

https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-nodejs

我已经在我的浏览器教程中完成了此操作,但是,当 Parcel 将项目捆绑在一起时,可以通过查看源文件来访问完整的 API key ,这表明它们在 bundle 的构建过程中已显示。

看来我需要使用 bundler ,因为客户端 JavaScript 中不存在用于浏览器使用的函数。

如何解决这个问题?

最佳答案

您不应在基于浏览器的应用程序中使用 API key ,因为这是一个主要的安全问题(任何用户都可以查看浏览器中的 JavaScript 文件并提取 key )。

您应该做的是拥有一个您的应用程序可以调用的 API 端点,并且该 API 端点应该向您返回一个共享访问签名 (SAS) token 。然后,您应该在应用程序中使用此 SAS token 与 Azure 存储交互。

关于javascript - 如何使用环境变量为浏览器实现Microsoft Azure Blob存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71082923/

相关文章:

javascript - JS窗口打印边距破表

javascript - 如何在 NodeJS 中使用 gm 调整多个图像的大小?

node.js - Webpack 错误 - 无法解析 'tmp/build...' 中的加载程序

azure - 如何连接 Azure 机器学习和 Spark Streaming 或 Apache Storm

python - 无法从 python 文件运行 azure databricks

javascript - 使用现有函数的输出作为对象属性

javascript - 确保表单在不使用 javascript 或 jquery 的情况下永远不会提交

azure - 如何访问 Azure Data Studio?

javascript - express .静态: Cannot GET/

javascript - 如何使用 Node 将javascript数组变量添加到mongodb中