当前位置: 首页 > 知识库问答 >
问题:

直接从Azure Blob存储提供私有文件

扈昀
2023-03-14

我的web应用允许用户上传文件,我想为此使用Cloud azure blob存储。

由于下载将非常频繁(超过上传),我想节省服务器计算时间和带宽,并直接从azure blob服务器提供文件。

我相信这是可能的,在谷歌云上使用Firebase(火库)。在那里你可以直接从客户端上传和下载。(我知道身份验证和授权也由Firebase管理,所以它让事情变得更容易)

Azure上是否存在类似的机制/服务?

例如,当用户单击azure存储下载链接时,触发器将检查JWT的授权,数据将从azure存储直接发送到客户端

共有1个答案

张可人
2023-03-14

Azure Blob存储也提供类似的选项。可以使用存储SDK访问容器并列出/下载Blob

通过javascript后端,您可以使用SAS令牌或Azure存储javascript客户端库,它还支持基于存储帐户密钥创建BlobService,以进行SAS令牌之外的身份验证。但是,出于安全考虑,请使用由后端web服务器使用存储访问策略生成的有限时间SAS令牌。

这里举个例子

编辑:

我还没有完全回答上面的问题,但是如果你想访问blob存储或从blob存储下载任何文件,你可以使用普通的http get请求,并使用任何JavaScript应用程序生成的SAS令牌。

与Angualr:

uploadToBLob(files) {
    let formData: FormData = new FormData();
    formData.append("asset", files[0], files[0].name);
    this.http.post(this.baseUrl + 'insertfile', formData)
      .subscribe(result => console.log(result));
  }

  downloadFile(fileName: string) {
    return this.http.get(this.baseUrl + 'DownloadBlob/' + fileName, { responseType: "blob" })
      .subscribe((result: any) => {
        if (result) {
          var blob = new Blob([result]);
          let saveAs = require('file-saver');
          let file = fileName;
          saveAs(blob, file);
          this.fileDownloadInitiated = false;
        }
      }, err => this.errorMessage = err
      );
  }

然而,考虑到安全性,最佳实践是使用后端API/Azure函数来处理文件上传。

 类似资料:
  • 问题内容: 我在GitLab服务器上有一个专用存储库,使用SSH可以使用git clone拉出一个项目。 但是我想直接从服务器上在Linux命令行上运行脚本(更具体地说,是Drupal / Drush .make文件) 我尝试使用原始文件运行它: (为了方便非Drupal用户,我们可以说) 没有成功。当然,它会返回登录页面。 可能吗? 问题答案: 在Chris的宝贵帮助下,您可以通过以下方法从Gi

  • 使用这个站点上的另一个答案,我可以找到这个curl脚本: 它能够下载大型谷歌驱动器文件(显示警告页面)。 此外,我还可以使用命令: 那么,我怎样才能简单地返回直接的Google Drive下载链接,而不是下载整个东西呢? 编辑:

  • 问题内容: 我正在运行kubeadm alpha版本来设置我的kubernates集群。从kubernates,我试图提取在nexus存储库中托管的docker镜像。每当我尝试创建Pod时,每次都会给出“ ImagePullBackOff”。有人可以帮我吗? 有关详细信息,请参见https://github.com/kubernetes/kubernetes/issues/41536 吊舱定义:

  • 问题内容: 我正在使用docker-compose命令运行多个容器。问题是我的docker- compose必须从公共存储库中提取一些图像,并从私有存储库中提取一些图像。我打算做的是将所有必需的映像推送到私有存储库,但是如何使docker- compose从私有存储库中提取映像。 简而言之->当图像仅在那里可用时,如何指向私有存储库 问题答案: 使用命令。(官方文件) 输入您的凭据,然后,只有拥有

  • 是否可以创建一个html表单,允许Web用户直接将文件上传到azure blob store,而不使用其他服务器作为中介?S3和GAW blob store都允许这样做,但我找不到对azure blob存储的任何支持。

  • 问题内容: 我正在尝试运行一个容器,该容器将公开私有GitHub存储库上的软件包中的golang服务。 由于我与GCE合作,因此我的入门图片是google / debian:wheezy。 安装所有必需的依赖项和工具后,我正在运行 包裹是私人仓库。 我添加了GitHub SSH密钥以允许从私有存储库克隆到docker文件: 尽管如此,当go尝试克隆存储库时,我在go get流程中遇到了一个错误: