He usado el siguiente código para cargar una imagen en el depósito s3 usando Android.
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));Cuando creo un depósito en las regiones de Asia Pacífico (Singapur), funciona bien. Pero tengo que cambiar las regiones del depósito a Asia Pacífico (Mumbai), luego arroja el siguiente error.
Carga de imágenes de Amazon s3: com.amazonaws.services.s3.model.AmazonS3Exception: el mecanismo de autorización que proporcionó no es compatible. Utilice AWS4-HMAC-SHA256. (Servicio: Amazon S3; Código de estado: 400; Código de error: Solicitud no válida; ID de solicitud: 85D0346520B14007), ID de solicitud extendida de S3: gC67avqeowqS4+X+2qkBxzLxfj9ABVV22zWgPcm/rZBKC0RIso201+eMsvBsqdnH+8n0V9RI0J8=
Me usaron debajo de SDK para lo mismo.
compile 'com.amazonaws:aws-android-sdk-s3:2.2.13'ahora se usa debajo de la versión de sdk de lo que funcionará bien.
compile 'com.amazonaws:aws-android-sdk-s3:2.4.0'Confirmado, la actualización del SDK a la última versión lo solucionó. en mi caso,
implementation 'com.amazonaws:aws-android-sdk-core:2.6.13' implementation 'com.amazonaws:aws-android-sdk-s3:2.6.13'si tiene el mismo problema, verifique la versión de aws sdk en el archivo build.gradle del nivel de su aplicación.
Solo respondo por si alguien viene a buscarlo.