簡體   English   中英

com.amazonaws.services.s3.model.AmazonS3Exception:Forbidden(Service:Amazon S3; Status Code:403; Error Code:403 Forbidden; Request ID:XXXXXXXX)

[英]com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: XXXXXXXX)

從幾天開始,當我嘗試將文件推送到S3Bucket時,我收到此異常。 Ealier一切似乎都有效,我相信我的代碼沒有任何代碼變化。

com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden
(Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden;
Request ID: XXXXXXXXXXXX),
S3 Extended Request ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1077)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:725)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:460)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:295)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3699)
at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:999)
at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:977)

.... ....

我遇到了許多與com.amazonaws.services.s3.model.AmazonS3異常相關的Q:禁止跟隨這些

  1. 我已經在我的服務器上安裝了NTP來解決任何時間問題。
  2. 我還將“AmazonS3Client”對象的endPointUrl添加到我認為可以解決我的問題的代碼中。

我還可以嘗試解決這個問題

我正在使用aws-java-sdk:1.9.10將文件推送到S3 Bucket。

很可能您的實例尚未使用可訪問S3的IAM實例配置文件角色啟動。

必須使用訪問密鑰和機密簽署對AWS服務的所有訪問權限。 從本地計算機執行此操作時, DefaultCredentialsProviderChain使用.aws/credentials文件中定義的訪問密鑰和密鑰。

在AWS中啟動EC2實例時,還需要對服務請求進行簽名,例如s3。 但是,它通過從內部元數據服務檢索它的憑據來實現此目的。

因此,您所做的是創建一個IAM實例配置文件,您的實例在啟動時將采用該配置文件。 與用戶的其他IAM配置文件一樣,此IAM實例配置文件定義了實例可以訪問的內容。

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html

在我的情況下,在android端的存儲桶名稱不同(存儲桶名稱在S3處為'a',我在android端輸入'ab'),通過更改存儲桶名稱反之亦然,我解決了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM