Verwenden von Dual-Stack-Endpunkten von S3 on Outposts
Dual-Stack-Endpunkte von S3 on Outposts unterstützen Anforderungen an S3-on-Outposts-Buckets über IPv6 und IPv4. In diesem Abschnitt wird die Verwendung von Dual-Stack-Endpunkten von S3 on Outposts beschrieben.
Themen
Dual-Stack-Endpunkte von S3 on Outposts
Wenn Sie eine Anforderung an einen Dual-Stack-Endpunkt richten, wird die Bucket-URL von S3 on Outposts in eine IPv6- oder eine IPv4-Adresse aufgelöst. Weitere Informationen zum Zugriff auf einen Bucket von S3 on Outposts über IPv6 finden Sie unter Senden von Anforderungen an S3 on Outposts über IPv6.
Verwenden Sie einen Endpunktnamen im Path-Style, um über einen Dual-Stack-Endpunkt auf einen Bucket von S3 on Outposts zuzugreifen. S3 on Outposts unterstützt nur regionale Dual-Stack-Endpunktnamen, d. h. Sie müssen die Region als Teil des Namens angeben.
Verwenden Sie für einen FIPS-Dual-Stack-Endpunkt im Path-Style die folgende Namenskonvention:
s3-outposts-fips.region.api.aws
Dual-Stack-Endpunkte ohne FIPS verwenden die folgende Namenskonvention:
s3-outposts.region.api.aws
Anmerkung
Virtuell gehostete Endpunktnamen werden in S3 on Outposts nicht unterstützt.
Verwenden von Dual-Stack-Endpunkten von der AWS CLI
Dieser Abschnitt enthält Beispiele für AWS CLI-Befehle für Anfragen an einen Dual-Stack-Endpunkt. Weitere Informationen zum Einrichten der AWS CLI finden Sie unter Erste Schritte mit der AWS CLI und dem SDK for Java.
Sie setzen den Konfigurationswert use_dualstack_endpoint in einem Profil in Ihrer AWS Config-Datei auf true, um alle Amazon-S3-Anfragen von den AWS CLI-Befehlen s3 und s3api an die Dual-Stack-Endpunkte für die angegebene Region weiterzuleiten. Sie geben die Region in der Konfigurationsdatei oder in einem Befehl mit der Option --region an.
Bei Verwendung von Dual-Stack-Endpunkten mit der AWS CLI wird nur der Adressierungsstil path unterstützt. Der Adressierungsstil, der in der Konfigurationsdatei festgelegt wird, bestimmt, ob der Bucket-Name im Hostnamen oder in der URL enthalten ist. Weitere Informationen finden Sie unter s3outposts im AWS CLI-Benutzerhandbuch.
Um einen Dual-Stack-Endpunkt über die AWS CLI zu verwenden, nutzen Sie den Parameter --endpoint-url mit dem Endpunkt http://s3.dualstack. oder region.amazonaws.com.rproxy.govskope.cahttps://s3-outposts-fips. für alle Befehle des Typs region.api.awss3control oder s3outposts.
Zum Beispiel:
$aws s3control list-regional-buckets --endpoint-url https://s3-outposts.region.api.aws
Dual-Stack-Endpunkte von S3 on Outposts aus AWS-SDKs verwenden
Dieser Abschnitt enthält Beispiele für den Zugriff auf einen Dual-Stack-Endpunkt unter Verwendung der AWS-SDKs.
Beispiel für einen AWS SDK for Java 2.x-Dual-Stack-Endpunkt
Das folgende Beispiel veranschaulicht, wie Sie beim Erstellen eines S3-in-Outposts-Clients mit AWS SDK for Java 2.x die Klassen S3ControlClient und S3OutpostsClient verwenden, um Dual-Stack-Endpunkte zu aktivieren. Anweisungen zum Erstellen und Testen eines funktionierenden Java-Beispiels für Amazon S3 on Outposts finden Sie unter Erste Schritte mit der AWS CLI und dem SDK for Java.
Beispiel – Eine S3ControlClient-Klasse mit aktivierten Dual-Stack-Endpunkten erstellen
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(); } } }
Beispiel – Eine S3OutpostsClient-Klasse mit aktivierten Dual-Stack-Endpunkten erstellen
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(); } } }
Wenn Sie AWS SDK for Java 2.x unter Windows einsetzen, müssen Sie möglicherweise die folgende JVM (Java Virtual Machine)-Eigenschaft festlegen:
java.net.preferIPv6Addresses=true