我刚刚完成了使用AWS Amplify后端创建Flutter移动的应用程序的教程,但运行了完整的应用程序(在iOS模拟器中)
https://aws.amazon.com/getting-started/hands-on/build-flutter-mobile-app-part-one/module-four/
我遇到了一个例外:
[VERBOSE-2:dart_vm_initializer. cc(41)]未处理的异常:异常:"message":"进行API调用时拒绝S3访问。","recoverySuggestion":"从服务返回HTTP错误,请查看underlyingException以了解详细信息。","underlyingException":"" UnknownSmithyHttpException'"}的示例#0 {S3Service.headObject(package:amplify_storage_s3_dart/src/storage_s3_service/service/storage_s3_service_impl.dart:第七百四十七章:7)#1安装S3Service.getProperties(package:amplify_storage_s3_dart/src/storage_s3_service/service/storage_s3_service_impl.dart:二百二十六:9)#2 S3Service.getUrl(package:amplify_storage_s3_dart/src/storage_s3_service/service/storage_s3_service_impl.dart:二百六十七:7)#3服务。getImageUrl(package:amplify_trips_planner/common/services/storage_service. dart :二十一:20)#4 TripController. uploadFile(package:amplify_trips_planner/fe <.关于我们
我也注意到了(可能有关?))有没有办法在应用程序的UI注销和再次登录?请告知🙂
1条答案
按热度按时间2o7dmzc51#
您遇到的错误为“拒绝拒绝异常”,表示应用程序正在尝试访问Amazon S3存储,但由于缺乏权限,请求被拒绝。当AWS Amplify没有访问您AWS帐户中的存储服务所需的权限时,它会抛出此错误。
要解决此问题,您需要检查并调整AWS资源的权限。你可以这样做:
AWS控制台:登录您的AWS控制台。
Amazon S3:转到AWS控制台中的Amazon S3服务。
铲斗长度:选择您的应用用于存储的S3存储桶。
标签:导航到“菜单”选项卡。
Bucket策略:确保存储桶策略允许Amplify的必要操作。它应该看起来像这样:
{“版本”:“2012-10-17”,“声明”:[ {“Sid”:“PublicReadGetObject”,“Effect”:“允许”、“主体”:“"、“操作”:[“s3:GetObject”],“资源”:“arn:aws:s3:your-bucket-name/”} ] }请确保您的存储桶策略包含Amplify应用所需的权限。
IAM角色:此外,请检查与您的应用关联的IAM角色。确保角色具有访问S3所需的权限。角色应附加AmazonS 3FullAccess策略,或具有所需S3权限的自定义策略。