Nous utilisons des URL s3 prédéfinies pour fournir un accès Web à images stockées dans s3.Java amazonS3.generatePresignedUrl - Comment configurer https://s3.amazonaws.com/mycompany au lieu de https://mycompany.s3.amazonaws.com/com.mycompany
Le code java que nous utilisons pour générer les urls presigned est similaire au-dessous
String accessKey = ...;
String secretKey = ...;
String region = ...;
com.amazonaws.HttpMethod awsHttpMethod = ...;
String bucketName = ...;
String objectKey = ...;
Date expirationDate = ...;
BasicAWSCredentials creds = new BasicAWSCredentials(accessKey, secretKey);
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(creds)).withRegion(region).build();
GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, objectKey);
generatePresignedUrlRequest.setMethod(awsHttpMethod);
generatePresignedUrlRequest.setExpiration(expirationDate);
URL url = s3Client.generatePresignedUrl(generatePresignedUrlRequest);
L'URL qui est généré par le code ressemble à
Cependant depuis notre seau Norme de nommage contient des points, un appel à l'URL ci-dessus entraîne une erreur SSL: no alternative certificate subject name matches target host name 'com.mycompany.personalpictures.s3.amazonaws.com'
Je lis dans this post que la cause première est les points dans le nom de compartiment et que l'utilisation https://s3.amazonaws.com/com.mycompany.personalpictures/picture123.png devrait contourner le problème.
Comment puis-je générer des URL prédéfinies en utilisant le format d'URL https://s3.amazonaws.com/mybucket/myfile?