繁体   English   中英

如何从 Azure Blob Storage (V2) 获取数据到 Angular 7?

[英]How to GET data from Azure Blob Storage (V2) into Angular 7?

我的存储 Blob 容器 (v2) 中有一个 csv 文件(Blob 类型:块 blob)。

我想知道如何才能将文件提取到我的 Angular 应用程序中?

目前我尝试下载 csv,将其移动到 assets 文件夹并使用 HttpClient get() 方法从那里获取并成功读取数据:

this.http.get('assets/my-organization.csv', {responseType: 'text'})
          .subscribe(data => {
            let csvToRowArray = data.split("\n");
            for (let index = 1; index <csvToRowArray.length - 1; index++) {
              let row = csvToRowArray[index].split(";");
              this.orgArray.push(new Organizatio(row[0],row[1], row[2], row[3]));
            }
            console.log(this.orgArray);
          })

现在我希望能够从 Azure 本身动态地获取数据,而无需每次生成新数据时都手动下载。 我尝试简单地将其重命名为:

this.http.get('https://<my_azure_storage_url>/my-organization.csv', {responseType: 'text'})

这自然是行不通的。 所以我想知道我怎样才能得到这些数据?

我将解决方案总结如下。

1. 如何使用 rest api 应用程序中的 rest 访问 Azure blob

关于这个问题,您需要在存储帐户中配置一些设置

  1. 为 Azure 存储配置 CORS
Allowed origins: *
Allowed verbs: DELETE,GET,HEAD,MERGE,POST,OPTIONS,PUT
Allowed headers: *
Exposed headers: *
Maximum age (seconds): 86400
  1. 配置防火墙。 如果打开存储帐户的防火墙,则需要在存储帐户的防火墙中添加客户端 IP。 更多详细信息,请参阅文档

  2. 配置 Azure blob 访问级别。 关于设置,请在账户级别或容器级别进行配置。 根据您的安全问题。 因为你使用不同的设置,你会得到不同的结果。 有关设置的更多详细信息,请参阅此处

例如

一个。 禁用存储帐户的公共读取访问权限。 如果这样做,您将无法向该帐户中的所有容器和 blob 发送任何匿名请求,并且无法将容器的公共访问设置配置为允许匿名访问。 您应该使用sas 令牌共享密钥访问存储资源

湾。 为存储帐户启用公共读取访问权限

  • 为容器启用公共访问级别。 我们可以匿名读取 blob 的内容。

  • 禁用容器的公共访问级别。 我们需要使用sas 令牌共享密钥来读取 blob 的内容。

此外,关于如何在 angular 应用程序中创建 sas 令牌,请参考我之前的回答

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM