本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 S3 on Outposts 雙堆疊端點
S3 on Outposts 雙堆疊端點支援透過 IPv6 與 IPv4 對 S3 on Outposts 儲存貯體提出請求。本節說明如何使用 S3 on Outposts 雙堆疊端點。
S3 on Outposts 雙堆疊端點
當您對雙堆疊端點時提出請求時,S3 on Outposts 儲存貯體 URL 會解析為 IPv6 或 IPv4 位址。如需如何透過 IPv6 存取 S3 on Outposts 儲存貯體的詳細資訊,請參閱透過 IPv6 向 S3 on Outposts 提出請求。
若要透過雙堆疊端點存取 S3 on Outposts 儲存貯體,請使用路徑樣式端點名稱。S3 on Outposts 僅支援區域雙堆疊端點名稱,亦即,指定的名稱必須包含區域。
針對雙堆疊端點路徑樣式 FIP 端點,請使用下列命名慣例:
s3-outposts-fips.
region
.api.aws
針對雙堆疊非 FIP 端點,請使用下列命名慣例:
s3-outposts.
region
.api.aws
注意
S3 on Outposts 中不支援虛擬託管樣式端點名稱。
從 使用雙堆疊端點 AWS CLI
本節提供用於向雙堆疊端點提出請求的 AWS CLI 命令範例。如需設定 的說明 AWS CLI,請參閱 開始使用適用於 Java 的 AWS CLI 和 開發套件。
您可以在 AWS Config 檔案的設定檔use_dualstack_endpoint
true
中將組態值設定為 ,將 s3
和 s3api
AWS CLI 命令提出的所有 Amazon S3 請求導向至指定區域的雙堆疊端點。您可以在組態檔案或命令中使用 --region
選項指定區域。
搭配 使用雙堆疊端點時 AWS CLI,僅支援path
定址樣式。組態檔案中設定的定址樣式會決定儲存貯體名稱應包含主機名稱中,或是包含在 URL 中。如需詳細資訊,請參閱《AWS CLI 使用者指南》中的 s3outposts。
若要透過 使用雙堆疊端點 AWS CLI,請將 --endpoint-url
參數與 http://s3.dualstack.
或 region
.amazonaws.com.rproxy.govskope.cahttps://s3-outposts-fips.
端點搭配使用,以用於任何 region
.api.awss3control
或 s3outposts
命令。
例如:
$
aws s3control list-regional-buckets --endpoint-url https://s3-outposts.region
.api.aws
從 AWS SDKs 使用 S3 on Outposts 雙堆疊端點
本節提供如何使用 AWS 開發套件存取雙堆疊端點的範例。
AWS SDK for Java 2.x 雙堆疊端點範例
下列範例示範如何在使用 AWS SDK for Java 2.x建立 S3 on Outposts 用戶端時,使用 S3ControlClient
和 S3OutpostsClient
類別啟用雙堆疊端點。如需建立及測試 Amazon S3 on Outposts 的可行 Java 範例的指示,請參閱開始使用適用於 Java 的 AWS CLI 和 開發套件。
範例 – 在啟用雙堆疊端點的情況下建立 S3ControlClient
類別
import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3control.S3ControlClient; import software.amazon.awssdk.services.s3control.model.ListRegionalBucketsRequest; import software.amazon.awssdk.services.s3control.model.ListRegionalBucketsResponse; import software.amazon.awssdk.services.s3control.model.S3ControlException; public class DualStackEndpointsExample1 { public static void main(String[] args) { Region clientRegion = Region.of("
us-east-1
"); String accountId = "111122223333
"; String navyId = "9876543210
"; try { // Create an S3ControlClient with dual-stack endpoints enabled. S3ControlClient s3ControlClient = S3ControlClient.builder() .region(clientRegion) .dualstackEnabled(true) .build(); ListRegionalBucketsRequest listRegionalBucketsRequest = ListRegionalBucketsRequest.builder() .accountId(accountId) .outpostId(navyId) .build(); ListRegionalBucketsResponse listBuckets = s3ControlClient.listRegionalBuckets(listRegionalBucketsRequest); System.out.printf("ListRegionalBuckets Response: %s%n", listBuckets.toString()); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 on Outposts couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (S3ControlException e) { // Unknown exceptions will be thrown as an instance of this type. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 on Outposts couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3 on Outposts. e.printStackTrace(); } } }
範例 – 建立已啟用雙堆疊端點的 S3OutpostsClient
import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3outposts.S3OutpostsClient; import software.amazon.awssdk.services.s3outposts.model.ListEndpointsRequest; import software.amazon.awssdk.services.s3outposts.model.ListEndpointsResponse; import software.amazon.awssdk.services.s3outposts.model.S3OutpostsException; public class DualStackEndpointsExample2 { public static void main(String[] args) { Region clientRegion = Region.of("
us-east-1
"); try { // Create an S3OutpostsClient with dual-stack endpoints enabled. S3OutpostsClient s3OutpostsClient = S3OutpostsClient.builder() .region(clientRegion) .dualstackEnabled(true) .build(); ListEndpointsRequest listEndpointsRequest = ListEndpointsRequest.builder().build(); ListEndpointsResponse listEndpoints = s3OutpostsClient.listEndpoints(listEndpointsRequest); System.out.printf("ListEndpoints Response: %s%n", listEndpoints.toString()); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 on Outposts couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (S3OutpostsException e) { // Unknown exceptions will be thrown as an instance of this type. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 on Outposts couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3 on Outposts. e.printStackTrace(); } } }
如果您在 Windows AWS SDK for Java 2.x 上使用 ,您可能需要設定下列 Java 虛擬機器 (JVM) 屬性:
java.net.preferIPv6Addresses=true