![](/img/trans.png)
[英]How to resolve AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: null) using java
[英]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:禁止跟隨這些
我還可以嘗試解決這個問題
我正在使用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.