Mon code actuel pour un accès REST basé sur la copie d'objets sur mon bucket S3 ne fonctionne pas. Mon bucket S3 est configuré pour un accès https et a également sse activé. Comment pourrais-je modifier le code ci-dessous pour le faire fonctionner? Actuellement, je reçois juste un message d'erreur 'Caught an AmazonClientException, ce qui signifie que le client a rencontré une erreur en essayant de communiquer avec S3, comme ne pas pouvoir accéder au réseau. Message d'erreur: Impossible d'exécuter la requête HTTP: mybucket.s3.amazonaws.com'
@PUT
@Path("/copy/{bucketName}")
public void copyObject(@PathParam("bucketName") String bucketName, @QueryParam("fromPath") String fromPath,
@QueryParam("toPath") String toPath) throws AmazonClientException {
AmazonS3 s3client = new AmazonS3Client(new DefaultAWSCredentialsProviderChain());
try {
CopyObjectRequest copyObjRequest = new CopyObjectRequest(bucketName, fromPath, bucketName, toPath);
System.out.println("Copie d'objet en cours.");
s3client.copyObject(copyObjRequest);
} catch (AmazonServiceException ase) {
System.out.println("Caught an AmazonServiceException, " + "which means your request made it "
+ "to Amazon S3, but was rejected with an error " + "response for some reason.");
System.out.println("Message d'erreur: " + ase.getMessage());
System.out.println("Code d'état HTTP: " + ase.getStatusCode());
System.out.println("Code d'erreur AWS: " + ase.getErrorCode());
System.out.println("Type d'erreur: " + ase.getErrorType());
System.out.println("ID de requête: " + ase.getRequestId());
} catch (AmazonClientException ace) {
System.out.println("Caught an AmazonClientException, " + "which means the client encountered "
+ "an internal error while trying to " + " communicate with S3, "
+ "such as not being able to access the network.");
System.out.println("Message d'erreur: " + ace.getMessage());
}
}