使用预先签名的URL问题下载Flutter S3

inn6fuwd  于 2023-01-31  发布在  Flutter
关注(0)|答案(1)|浏览(160)

我尝试使用预先签名的url将s3上的文件下载到我的flutter应用程序。我有一个lambda函数来生成和传递url。预先签名的url本身工作正常,但一旦进入flutter,数据就不知何故发生了变化,AWS返回404错误。看起来令牌不知何故被损坏了。
如果我尝试过解析返回的XML、JSON数据,但从来没有解析过。我还将lambda的输出更改为JSON或直接发送url,但都没有解决问题。这些方法都不起作用。我必须提取XML或其他什么吗?
下面是从lambda调用中获取url的代码:

http.Response res1 = await http.get(url2);
  dynamic data1 = cnv.jsonDecode(res1.body); //XmlDocument.parse(res1.body);
  if (data1['theStatus'] == "error") {
    String theStatus2 = "error";
    return theStatus2;
  } else {
    (data1['theUrl']);
    writeData(77, data1['theUrl']); //save in Hive
    return data1;
  }

下面是使用预签名url的代码:
x一个一个一个一个x一个一个二个x
如果我用浏览器访问lambda的预先签名的url硬编码上面的url,一切都很好...
我相信这个问题与XML有关,但是当我使用XML解析时,它抛出了一个错误,没有根......任何帮助都很感激。

x6yk4ghg

x6yk4ghg1#

找到问题了...我的lambda函数没有正确的凭据。我使用以下方法找到了解决方案:
How I can generated pre-signed url for different file versions of AWS S3 objects in NodeJS?

相关问题