微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在尝试将文件上传到 S3 时,通过 Amplify CLI for Android 项目导入 S3 存储会引发 403 未经身份验证的错误

如何解决在尝试将文件上传到 S3 时,通过 Amplify CLI for Android 项目导入 S3 存储会引发 403 未经身份验证的错误

当我使用以下命令从 amplify CLI 创建 s3 时: amplify add storage .. 一切正常,我可以上传文件。 但是通过 CLI 中的放大导入存储导入现有的 S3 存储桶并将文件上传到 S3 会引发以下错误

2021-02-06 11:39:26.571 16838-16838/com.example.seki E/MyAmplifyApp: Upload Failed
    StorageException{message=Something went wrong with your AWS S3 Storage upload file operation,cause=com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: AE9D3FCEA04F4A6B),S3 Extended Request ID: el6xSv6LQmsoV+JxPAiKy92Qmh5opEARO6RIhQLISz+vHBxp83+uY6jmLyQP8GXlrdDdhJoCTrY=,recoverySuggestion=See attached exception for more information and suggestions}
        at com.amplifyframework.storage.s3.operation.AWSS3StorageUploadFileOperation$UploadTransferListener.onError(AWSS3StorageUploadFileOperation.java:207)
        at com.amazonaws.mobileconnectors.s3.transferutility.TransferStatusUpdater$4.run(TransferStatusUpdater.java:306)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7050)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
     Caused by: com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: AE9D3FCEA04F4A6B),S3 Extended Request ID: el6xSv6LQmsoV+JxPAiKy92Qmh5opEARO6RIhQLISz+vHBxp83+uY6jmLyQP8GXlrdDdhJoCTrY=
        at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:742)
        at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:420)
        at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:229)
        at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4913)
        at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1960)
        at com.amazonaws.mobileconnectors.s3.transferutility.UploadTask.uploadSinglePartAndWaitForCompletion(UploadTask.java:282)
        at com.amazonaws.mobileconnectors.s3.transferutility.UploadTask.call(UploadTask.java:114)
        at com.amazonaws.mobileconnectors.s3.transferutility.UploadTask.call(UploadTask.java:59)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:764)
2021-02-06 11:39:26.574 16838-16838/com.example.seki E/MyAmplifyApp: Upload Failed
    StorageException{message=Storage upload operation was interrupted.,cause=null,recoverySuggestion=Please verify that you have a stable internet connection.}
        at com.amplifyframework.storage.s3.operation.AWSS3StorageUploadFileOperation$UploadTransferListener.onStateChanged(AWSS3StorageUploadFileOperation.java:188)
        at com.amazonaws.mobileconnectors.s3.transferutility.TransferStatusUpdater$2.run(TransferStatusUpdater.java:224)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7050)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)

注意:我为导入 S3 时创建的 Cognito 身份池启用了未经身份验证的访问。

我也在 amplify Github 中提出了同样的问题,-https://github.com/aws-amplify/amplify-cli/issues/6515

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。