[英]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
关于这个问题,您需要在存储帐户中配置一些设置
Allowed origins: *
Allowed verbs: DELETE,GET,HEAD,MERGE,POST,OPTIONS,PUT
Allowed headers: *
Exposed headers: *
Maximum age (seconds): 86400
配置防火墙。 如果打开存储帐户的防火墙,则需要在存储帐户的防火墙中添加客户端 IP。 更多详细信息,请参阅文档
配置 Azure blob 访问级别。 关于设置,请在账户级别或容器级别进行配置。 根据您的安全问题。 因为你使用不同的设置,你会得到不同的结果。 有关设置的更多详细信息,请参阅此处。
例如
一个。 禁用存储帐户的公共读取访问权限。 如果这样做,您将无法向该帐户中的所有容器和 blob 发送任何匿名请求,并且无法将容器的公共访问设置配置为允许匿名访问。 您应该使用sas 令牌或共享密钥访问存储资源
湾。 为存储帐户启用公共读取访问权限
此外,关于如何在 angular 应用程序中创建 sas 令牌,请参考我之前的回答
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.