如何从 Azure Blob 存储 (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. How to access Azure blob with rest api in angular application
关于这个问题,您需要在存储账户中配置一些设置
Allowed origins: *
Allowed verbs: DELETE,GET,HEAD,MERGE,POST,OPTIONS,PUT
Allowed headers: *
Exposed headers: *
Maximum age (seconds): 86400
配置防火墙。如果你打开了存储账户的防火墙,你需要在存储账户的防火墙中添加你的客户端IP。详情请参考document
配置 Azure blob 访问级别。关于设置,请在帐户级别或容器级别进行配置。根据您的安全考虑。因为你使用不同的设置,你会得到不同的结果。更详细的设置请参考here.
例如
一个。禁用存储帐户的 public 读取权限。如果这样做,则无法向该帐户中的所有容器和 blob 发送任何匿名请求,也无法将容器的 public 访问设置配置为允许匿名访问。您应该使用 sas token or share key
访问存储资源
b。为存储帐户启用public 读取权限
另外,关于如何在angular应用中创建sas token,请参考
我的存储 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. How to access Azure blob with rest api in angular application
关于这个问题,您需要在存储账户中配置一些设置
Allowed origins: *
Allowed verbs: DELETE,GET,HEAD,MERGE,POST,OPTIONS,PUT
Allowed headers: *
Exposed headers: *
Maximum age (seconds): 86400
配置防火墙。如果你打开了存储账户的防火墙,你需要在存储账户的防火墙中添加你的客户端IP。详情请参考document
配置 Azure blob 访问级别。关于设置,请在帐户级别或容器级别进行配置。根据您的安全考虑。因为你使用不同的设置,你会得到不同的结果。更详细的设置请参考here.
例如
一个。禁用存储帐户的 public 读取权限。如果这样做,则无法向该帐户中的所有容器和 blob 发送任何匿名请求,也无法将容器的 public 访问设置配置为允许匿名访问。您应该使用 sas token or share key
访问存储资源b。为存储帐户启用public 读取权限
另外,关于如何在angular应用中创建sas token,请参考