2017-10-19 16 views
-1

https://wincent.com/wiki/HTTPS_access_to_Amazon_S3_buckets http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.htmlGénérer URL S3 dans "chemin de style" Format

Est-il possible d'utiliser le SDK Java pour générer une URL temporaire presigned S3 dans le chemin de style au lieu de l'hôte de style virtuel?

Edit: Pour clarifier:

chemin de style signifie https://s3.amazonaws.com/my.bucket/my_item?...

signifie le style virtuel hôte https://my.bucket.s3.amazon.aws.com/my_item?...

+0

Je ne sais pas, vous pouvez le faire, mais je suis intéressé pourquoi vous préférez chemin de style. – jarmod

+0

Je voulais juste confirmer si c'est (pas) possible. Si ce n'est pas le cas, alors changer le nom du compartiment serait le seul moyen. – dxh

+2

Pourriez-vous s'il vous plait modifier votre question pour montrer ce que vous entendez par "style de chemin" et "style d'hôte virtuel", pour le bénéfice des futurs lecteurs? –

Répondre

0

J'ai trouvé la solution.

Vous créez votre AmazonS3Client en appelant withPathStyleAccessEnabled(true) sur le AmazonS3ClientBuilder. Par exemple dans le code Scala suivant:

val amazonS3Client = AmazonS3ClientBuilder.standard() 
    .withRegion(Regions.US_EAST_1) 
    .withCredentials(awsCredentialsProvider) 
    .withPathStyleAccessEnabled(true) 
    .build() 

Ensuite, vous générez l'URL comme d'habitude.

val generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, objectName) 
... 
amazonS3Client.generatePresignedUrl(generatePresignedUrlRequest).toString 

L'URL résultante sera de style chemin.

Je ne l'aurais pas pris la peine de poser cette question si je l'avais vu Configure path-style in Java SDK Amazon S3 ...