javascript - 使用域路由管理同一域名下的两个不同 Azure 资源
问题描述
我正在尝试在 Microsoft Azure 中部署一个具有简单内容管理功能的 React 应用程序。当用户访问网站上的静态内容时,应用程序只需从数据库中读取 html 代码并显示它。鉴于 html 代码本身是静态的,我需要将图像等文件作为静态资源托管在 Azure Blob 存储中。但由于我已经将我的自定义域名分配给了应用程序,因此我无法将相同的域名用于 blob 存储。如何在我的应用程序中集成 blob 存储,以便当浏览器尝试访问路径下托管的文件时,即“/assets”,它会在 Azure blob 存储中的相应文件夹中查找路径名和文件名?
例如,如果 html 代码想要访问“/assets/img/1.jpg”,它会从我的 Azure Blob Storage 文件夹中获取“/img/1.jpg”吗?
解决方案
• 您可以通过在“src/azure-storage-blob.ts”中设置资源名称,将 azure blob 存储集成到您的 react 应用程序中,如下所示:-
'const storageAccountName = process.env.storageresourcename || "文件上传演示";' • 使用以下参数生成 SAS 令牌: -
属性 值 允许的服务 Blob 允许的资源类型 服务、容器、对象 允许的权限 读取、写入、删除、列出、添加、创建 启用版本删除 选中 开始和到期日期/时间 接受开始日期/时间并设置结束日期时间 24未来几个小时。您的 SAS 令牌仅在 24 小时内有效。仅 HTTPS 已选择 首选路由层 基本签名密钥 key1 已选择
• 在“src/azure-storage-blob.ts”中设置SAS 令牌,如下所示。不要添加“?” 在代码中添加 SAS 令牌时在 SAS 令牌值中。
//?
如果它是标记的第一个字符,则删除 const sasToken = process.env.storagesastoken || “SAS 令牌”;
• 现在,配置CORS 以允许资源使用自定义域名连接到应用程序并保存。因此,您将能够通过在本地浏览器中打开应用程序 URL 来上传 azure blob 存储中的图像。
• 上传图像后,可以通过存储资源管理器在层次结构中访问和排列它们,类似地,这些图像的路径可以映射到 Azure blob 存储并通过浏览器访问。
请参阅以下链接以获取更多信息:-
https://docs.microsoft.com/en-us/azure/storage/blobs/storage-custom-domain-name?tabs=azure-portal
感谢您,
推荐阅读
- function - 为什么 lambda 不能使封闭函数返回?
- java - 使用猫效应的 IO monad 进行单元测试
- python - Numpy:将多个 CSV 文件加载为字典
- flutter - FloatingActionButton backgroundColor默认为accentColor
- apache-spark - Spark Structured Streaming v2.4.0 - 检查点目录永远增长:*.tmp.crc 文件永远不会被删除
- javascript - 如何找出数组是否为零以及如何删除它
- c++ - MSYS2 CMake 路径前缀是 Windows 格式 (C:/) 但需要 MSYS2/*nix 样式 (/c/) 才能链接
- protractor - 如何在量角器中测试切换全屏开/关
- javascript - 在 JavaScript 中使用相同的输入调用时,switch 语句返回不同的结果
- algorithm - 树分解的算法