如何在Dart中从AWS Amplify获取文件URL并提取链接用于HTTP请求
获取Amplify Storage返回的文件URL
S3GetUrlResult对象内置了url属性(类型为Uri),你可以直接通过该属性提取文件URL,转为字符串后即可用于HTTP请求。
修改你的函数示例如下:
Future<String?> queryFileFromStorage(String key) async { try { final result = await Amplify.Storage.getUrl(key: key); // 提取URL并转为字符串格式 final fileUrl = result.url.toString(); print('文件URL: $fileUrl'); // 直接使用fileUrl发起HTTP请求,例如:await http.get(Uri.parse(fileUrl)) return fileUrl; } catch (e) { print('从存储查询文件出错: $e'); return null; } }
- 核心说明:
- 若需要直接构造HTTP请求的
Uri对象,可直接使用result.url,无需转字符串,比如await http.get(result.url) - 转字符串后的
fileUrl可直接用于任何需要URL字符串的场景
- 若需要直接构造HTTP请求的
内容的提问来源于stack exchange,提问作者Atomic Boy
相关产品推荐
相关产品推荐

