2017-10-19 81 views
-1

https://wincent.com/wiki/HTTPS_access_to_Amazon_S3_buckets http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html生成S3 URL中的「路徑式」格式

有沒有辦法使用Java SDK生成路徑式的而不是虛擬主機風格presigned S3臨時網址是什麼?

編輯:爲了澄清:

路徑式是指https://s3.amazonaws.com/my.bucket/my_item?...

虛擬主機風格意味着https://my.bucket.s3.amazon.aws.com/my_item?...

+0

不知道你能做到這一點,但我感興趣的是,爲什麼你喜歡路徑的風格。 – jarmod

+0

只是想確認它是否(不)可能。如果不是,那麼更改存儲桶名稱將是唯一的方法。 – dxh

+2

您能否請編輯您的問題以顯示「路徑風格」和「虛擬主機風格」的含義,爲未來的讀者帶來益處? –

回答

0

我找到了解決辦法。

通過致電AmazonS3ClientBuilder致電withPathStyleAccessEnabled(true),創建您的AmazonS3Client。例如在下面的Scala代碼:

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

然後你生成URL通常的方式。

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

生成的URL將是路徑樣式。

我不會打擾你問這個問題,如果我看到了Configure path-style in Java SDK Amazon S3 ...