2017-04-05 115 views
3

我已經使用Android代碼將以下代碼上傳到s3存儲桶。使用Android將圖像上傳到s3存儲桶時的授權問題

AmazonS3 s3client = new AmazonS3Client(new BasicAWSCredentials(context.getString(R.string.accesskey),context.getString(R.string.secretkey))); 
PutObjectResult result = s3client.putObject(new PutObjectRequest(bucketName, amazonfilepath, file).withAccessControlList(acl)); 

當我在亞太地區(新加坡)地區創建存儲桶時,它工作正常。 但是我必須將桶的區域改爲亞太地區(孟買),然後拋出錯誤。

Amazon S3的形象 上傳:com.amazonaws.services.s3.model.AmazonS3Exception:您提供的 授權機制不被支持。請使用 AWS4-HMAC-SHA256。 (服務:亞馬遜S3;狀態碼:400;錯誤代碼: InvalidRequest;請求ID:85D0346520B14007),S3擴展請求ID: gC67avqeowqS4 + X + 2qkBxzLxfj9ABVV22zWgPcm/rZBKC0RIso201 + eMsvBsqdnH + 8n0V9RI0J8 =

+1

嗨,您使用BasicAWSCredentials的用例是什麼?在應用程序中使用硬編碼憑據是非常危險的,不推薦使用。你可以使用Cognito身份嗎?這是一項免費服務,專爲移動用例而設計。 另外,你可以提到你使用的SDK版本嗎?你有沒有嘗試使用AWSS3TransferUtility?這很容易用於實現簡單的上傳用例。 –

+0

嗨Rohan感謝回答, 我被用於2.2.13 SDK版本相同。亞太地區(孟買)不支持Cognit Identity。現在我已經使用了2.4.0 sdk版本,問題解決了。 –

回答

4

我是用來下面的SDK相同。

compile 'com.amazonaws:aws-android-sdk-s3:2.2.13' 

現在使用sdk的版本低於它會正常工作。

compile 'com.amazonaws:aws-android-sdk-s3:2.4.0' 
0

確認,更新sdk到最新版本修復了它。在我的情況下,

implementation 'com.amazonaws:aws-android-sdk-core:2.6.13' 
implementation 'com.amazonaws:aws-android-sdk-s3:2.6.13' 

如果您有同樣的問題,請檢查應用程序級別build.gradle文件中的aws sdk版本。

只是回答有人來這裏尋找它。

相關問題