无法使用 flutter 中的 SAS 令牌上传到 azure 存储

2024-01-13

我正在尝试使用 SAS 令牌将文件/数据上传到 azure 存储。我使用以下方法成功地在没有 SAS 令牌的情况下实现了这一目标:

  sendToBlob (Uint8List bytes)async {
    var storage = AzureStorage.parse('DefaultEndpointsProtocol=https;AccountName=#;AccountKey=#==;EndpointSuffix=core.windows.net');
    await storage.putBlob('/test/2.txt',bodyBytes: bytes);
  }

当我生成 SAS 令牌并使用按以下格式编写的连接字符串时,我收到解析错误:

"BlobEndpoint=https://#.blob.core.windows.net/;QueueEndpoint=https://#.queue.core.windows.net/;FileEndpoint=https://#.file.core.windows.net/;TableEndpoint=https://#.table.core.windows.net/;SharedAccessSignature=sv=#"

尝试发送不带连接字符串的 put 请求,我的方法如下:

  uploadtoAzure(String sas)async{
    try {
      var url = 'https://#.blob.core.windows.net/test/4.txt?'+sas;
      Map<String, String> headers = ({"x-ms-blob-type": "BlockBlob"});
      final response = await http.put(
          url,
          headers: headers,
          body: 'hi'
      );
      print(response.statusCode);
    } on DioError catch (e) {
      if(e.response.statusCode == 404){
        print(e.message);
      }else{
        print(e.message);
      }
    }
  }

知道我是要上传到的存储帐户的所有者和存储 Blob 数据贡献者,并且 SAS 令牌未过期,这会导致 403 AuthorizationPermissionMismatch 错误。

¿<?xml version="1.0" encoding="utf-8"?><Error><Code>AuthorizationPermissionMismatch</Code><Message>This request is not authorized to perform this operation using this permission.
RequestId:bc7f5bb4-c01e-0066-0459-9a6d45000000
Time:2020-10-04T14:16:54.7302685Z</Message></Error>

有没有一种方法可以使用带有 SAS 令牌的连接字符串将数据从 flutter 上传到 azure?我怎样才能解决这个问题?

任何帮助表示赞赏。


由于我们的 Azure 功能正在生成用户委托 SAS 令牌,因此我们使用 Azure 上注册的应用程序作为服务主体。

这个问题通过赋值解决了存储 Blob 数据贡献者除了存储 Blob 委托者服务主体的角色以适应添加文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 flutter 中的 SAS 令牌上传到 azure 存储 的相关文章

  • 无法解析符号 FlutterActivity

    我使用 VCS gt Checkout from Version Control 将 flutter 项目从 github 导入到 Android Studio 中 现在我面临的问题是 Cannot resolve symbol Flutt
  • Firebase Cloud Function:& Flutter:无法在模拟器上使用 https 可调用函数 [firebase_functions/unavailable] 不可用

    我试图从我的 flutter 应用程序中使用模拟器调用 HTTPS 可调用函数 但它似乎不起作用 我调用该函数后 总是需要大约 5 秒的时间并返回错误 如果我将该功能部署在服务器上 它就可以完全正常工作 这是我的功能 exports try
  • 如何在 Redis 缓存中存储机器人状态

    虽然有一些文章描述了如何在 Redis 缓存中存储机器人状态 但这是推荐的方法吗 https ankitbko github io 2016 10 Microsoft Bot Framework Use Redis to store con
  • azure 和 google 上的自定义联合代理

    azure 和 google 中的 aws 上的自定义联合代理可以替代什么 在AWS中 我可以创建一个允许联合用户登录并访问这样的资源的url https docs aws amazon com IAM latest UserGuide i
  • DraggableScrollableSheet 拖动时不会给出工作表的当前位置

    在flutter中我们有一个小部件可拖动可滚动表 现在我想要子元素拖动时的当前位置或当前大小 目前还没有办法获得该值 它在其构建器方法中提供了 ScrollController 但那是在列表滚动时而不是在拖动列表时 那么还有另一种方法可以跟
  • 当 TextFormField 聚焦时如何隐藏错误外观

    我在用着TextFormField用于表单和自定义验证器方法返回错误消息 我试图隐藏默认错误消息和错误边框TextFormField当文本字段获得焦点时 TextFormField focusNode focusNode validator
  • 如何获取 ADLS Gen2 中存储的文件的 MD5?

    我通过 sFTP 将每日文件接收到 ADLS gen 2 存储帐户 我需要通过检查 ADLS gen2 中存储的文件的 MD5 来验证文件 我尝试使用 BLOB API 目前它不支持 ADLS gen2 如果文件存储在 Blob 存储中 我
  • Dart 客户端 HttpRequest 错误/身份验证处理

    我有一个 Dart 客户端和一个 Java 后端 我正在尝试增加应用程序的安全性 因此 Java 服务器要求用户在访问数据之前进行身份验证 如果传入 Web 服务调用并且用户未经过身份验证 则后端服务会将带有 HttpResponseCod
  • DocumentDB 上的并发

    这是 DocumentDB 上的一个新手问题 我们希望在我们的应用程序中使用 DocumentDB 我们有多个用户更改存储在 DocumentDB 中的数据 我们如何确保一个用户不会覆盖另一用户的更改 文档数据库有乐观并发并有一个ETag在
  • Azure RM 模板。具有多个数据磁盘的多个虚拟机

    我正在尝试创建一个模板 该模板将使用复制功能部署具有可变数量的多个数据磁盘的多个虚拟机 我严格遵循文档 但我的部署仍然失败 https learn microsoft com en us azure azure resource manag
  • Azure DevOps 管道构建工件中缺少 Gulp 编译的 CSS 文件夹

    一点背景 我有一个小型 dotnet 核心应用程序 该应用程序托管在 Azure 上 并且正在使用 Azure DevOps Pipelines 进行构建和部署 在我们开始使用 DevOps Pipelines 之前 CI 直接连接到 Az
  • 如何让按钮选择所有 Flutter 复选框?

    问题是我无法让按钮选择所有复选框 因为我使用的是自动生成的复选框列表 由于我创建了一个带有列表项的类 WordBlock 它是一个带有复选框的容器 每个复选框都有自己的选中值 因此我无法以任何方式选择所有内容 如果我通过构造函数设置选中的值
  • 如何从本地 asp.net 应用程序在 Azure Key Vault 中设置机密

    我有一个本地 asp net core 3 1 应用程序 我想在 Azure Key Vault 中设置机密 以下是我使用的来自微软的代码 string secretName xxSecret string keyVaultName Env
  • 使用服务主体连接 Azure SQL Server

    我想通过 Python 使用 Azure 服务主体连接 Azure SQL 数据库 请帮我 我可以使用服务主体通过 ADF 连接它 有一个图书馆Microsoft Azure Active Directory Authentication
  • 如何在 Flutter Web 应用程序中保存和下载文本文件

    我是 Flutter 新手 正在使用 Flutter Web 应用程序 我的要求是创建和下载文本文件 像下面这样 void getData List
  • flutter 动态查询 Firebase Firestore

    我正在创建一个视图 用户可以在其中选择多个元素 然后 通过在按钮上执行 onTap 这应该生成查询并在其他视图上显示查询结果 我的挑战是确保我获得用户选择的所有条件 然后使用多个字段值构建查询 我应该执行一个查询 然后对该查询进行查询等等
  • 如何检测颤振中的滑动

    我尝试使用 flutter 的滑动检测器插件来实现向右滑动导航到新屏幕 但它不起作用 不会引发任何错误 并且在调试它时永远不会命中断点 我研究了 GestureDector 但我不确定它是否适用于向右滑动的场景 我们希望它在屏幕上的任何位置
  • 无法创建集合信息 - 尝试在本地测试 Cosmos DB 触发器时出错

    我正在测试开发一个 Azure 函数来读取 Cosmos DB 数据库的更改源 我已经从 Azure 门户创建了这样的函数 但我想使用 VS 或 VS Code 来执行此操作 我使用 Azure Function Core Tools v2
  • flutter 中 http.post() 时出现 400 BAD 请求

    我创建了heroku web应用程序 它接受district season min temp max temp作为 POST 请求中的 bodyParms 它返回带有单个对象的 JSONcrop URL https agrocare api
  • _CastError(类型“String”不是类型转换中“List”类型的子类型)

    我已经采取了各种方法来创建缓存的产品列表 然后用列表显示 但到目前为止仍然不起作用 任何人都可以帮助我 我的 Json fromCache id 2911 nama Abcd1 url myUrl id 2910 nama Abcd2 ur

随机推荐

  • 从大浮点数中删除 E 符号,C#?

    如果您使用过大浮点数 您会发现在 C 中大浮点数显示如下 2000000 2000000 4E 12 我怎样才能展示4E 124 000 000 000 000 不4E 12 You want number ToString N0 N0 是
  • WinRT - 如何从导航历史记录中忽略或删除页面

    我的 WinRT Metro c xaml 应用程序中存在以下情况 用户启动应用程序 但他或她尚未登录 在菜单栏中 我有按钮将其导航到购物车 值得一提的是 无论登录 注销状态如何 他们都可以单击它 所以我有这个 Home Page gt L
  • 输入文件到达时如何启动批处理作业?

    我们有 Spring4 和 Spring Batch 3 我们的应用程序使用 CSV 文件作为输入文件 目前 我们使用 CommandLineJobRunner 和参数 包括要处理的文件的名称 从命令行手动启动作业 我想在输入文件到达受监视
  • opacity:0 与visibility:hidden 的效果完全相同吗

    如果是这样 它是否有效地弃用了visibility财产 我意识到 Internet Explorer 尚不支持此 CSS2 属性 布局引擎的比较 http en wikipedia org wiki Comparison of layout
  • 如何抓取给定时间段内的所有 subreddit 帖子

    我有一个功能可以抓取 2014 年 11 月 1 日到 2015 年 10 月 31 日期间比特币 subreddit 中的所有帖子 然而 我只能提取大约 990 个帖子 这些帖子只能追溯到 10 月 25 日 我不明白发生了什么 我在参考
  • 超时已过。在 Azure sql 上完成操作之前超时时间已过

    我需要在 windows azure 上的 global asax 应用程序启动事件上创建一个 sql 数据库 但是我收到此错误 Timeout expired The timeout period elapsed prior to com
  • 有没有办法查看进程每个核心的 CPU 使用率?

    我知道在 perfmon 中您可以看到每个核心的利用率 以及特定进程使用的总 CPU 量 然而 我似乎无法找到一种方法来查看进程使用了 多少CPU 按核心细分 有没有内置的方法来查看这些信息 有没有一种编程方式可以看到这一点 C 首选 我是
  • 如何在这段代码上应用 PyQt QThread

    coding utf 8 from PyQt5 QtWidgets import from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 uic import loadUiTy
  • 无法从其他子表单刷新子表单

    我有一个包含多个子表单的表单 当有人更改其中一个子表单的组合框中的值时 它需要刷新另一个子表单 我正在使用这段代码 但它不起作用 Forms frmDispatchPlanningSheet subfrmExtraDriversForPla
  • Java8 Lambda 和异常

    我想知道是否有人可以向我解释以下奇怪的现象 我正在使用 Java 8 更新 11 鉴于这个方法 private
  • 在运行时获取delphi记录中字段的偏移量

    给定一个记录类型 TItem record UPC string 20 Price Currency Cost Currency end 以及字段的名称作为字符串 如何获取该字段在记录中的偏移量 我需要在运行时执行此操作 要访问的字段的名称
  • 强制 git show 使用 vimdiff 显示 diff

    我该怎么做呢 通过进行更改后git config我可以使用 vimdiff 区分我的分阶段和提交的更改 但是当我这样做时git show我仍然看到旧的普通风格的差异 我该如何让它工作git show还有 尝试使用 git 别名 这是为了gi
  • conf.int 在 3.3 中不再使用 ggplot2、stat_summary

    我正在使用 conf int 在抖动图周围创建框 在将 R 升级到 3 3 之前 这种方法一直有效 是否有已知的修复方法 stat sum df all lt function fun geom crossbar stat summary
  • 如何防止 ckeditor 不在空白 html 标签中添加

    我在 Windows 8 1 操作系统中安装了 Visual Studio 2012 Express 并根据要求在我的项目中使用 CKEditor 我是 CKEditor 的新手 也以正确的方式使用它 但问题是通过在 CKEditor 中的
  • 调用 locale.strxfrm 时 Unicode 字符不在范围内

    我在使用时遇到奇怪的行为locale具有 unicode 输入的库 下面是一个最小的工作示例 gt gt gt x U0010fefd gt gt gt ord x 1113853 gt gt gt ord U0010fefd 0X10fe
  • Created_at 保存时区错误

    我有一个 laravel 应用程序 我正在尝试将用户签入和签出保存到我 的数据库中 我有一个模型Checkins我将其记录为created at和updated at 在我的本地主机上 它保存了我的时区 埃及 的正确时间 我尝试更改app
  • Paypal 地址覆盖不起作用

    我已经设置了一个查询字符串来将信息传递到贝宝 除了地址覆盖功能之外 所有工作都正常 它不会自动使用表格中发布的新地址更新送货地址 我希望能够覆盖现有帐户和新帐户 代码如下 queryString cmd xclick queryString
  • 对于 Windows 有 Win32 API,那么对于 Mac 呢?

    对于 Windows 有 Win32 API 那么对于 Mac 呢 在维基百科上 http en wikipedia org wiki Cocoa API http en wikipedia org wiki Cocoa 28API 29
  • 在 python 中配置根记录器

    我的 Django 设置中有以下日志配置 LOGGING version 1 disable existing loggers False formatters verbose format levelname s asctime s na
  • 无法使用 flutter 中的 SAS 令牌上传到 azure 存储

    我正在尝试使用 SAS 令牌将文件 数据上传到 azure 存储 我使用以下方法成功地在没有 SAS 令牌的情况下实现了这一目标 sendToBlob Uint8List bytes async var storage AzureStora