Verwenden von Amazon S3-Dual-Stack-Endpunkten - Amazon Simple Storage Service

Dieses Handbuch wird nicht mehr aktualisiert. Aktuelle Informationen und Anweisungen finden Sie im neuen Amazon S3-Benutzerhandbuch.

Verwenden von Amazon S3-Dual-Stack-Endpunkten

Amazon S3-Dual-Stack-Endpunkte unterstützen Anforderungen an S3-Buckets über IPv6 und IPv4. In diesem Abschnitt wird die Verwendung von Dual-Stack-Endpunkten beschrieben.

Amazon S3-Dual-Stack-Endpunkte

Wenn Sie eine Anforderung an einen Dual-Stack-Endpunkt richten, wird die Bucket-URL in eine IPv6- oder eine IPv4-Adresse aufgelöst. Weitere Informationen zum Zugriff auf einen Bucket über IPv6 finden Sie unter Stellen von Anforderungen an Amazon S3 über IPv6

Wenn Sie die REST-API verwenden, können Sie direkt auf einen Amazon S3-Endpunkt zugreifen, indem Sie den Endpunktnamen (URI) verwenden. Über einen Dual-Stack-Endpunkt können Sie auf einen S3-Bucket zugreifen, indem Sie einen Virtual-Hosted-Style- oder Path-Style-Endpunktnamen verwenden. Amazon S3 unterstützt nur regionale Dual-Stack-Endpunktnamen, d. h. Sie müssen die Region als Teil des Namens angeben.

Verwenden Sie die folgenden Namenskonventionenfür Endpunktnamen im Virtual-Hosted-Style und im Path-Style:

  • Dual-Stack-Endpunkte im Virtual-Hosted–Style:

    bucketname.s3.dualstack.aws-region.amazonaws.com

     

  • Dual-Stack-Endpunkt im Path–Style:

    s3.dualstack.aws-region.amazonaws.com/bucketname

Weitere Informationen zum Stil von Endpunktnamen finden Sie unter Zugriff auf einen Bucket. Eine Liste der Amazon-S3-Endpunkte finden Sie unter Regionen und Endpunkte in der Allgemeinen AWS-Referenz.

Wichtig

Für Dual-Stack-Endpunkte kann eine Transfer Acceleration verwendet werden. Weitere Informationen finden Sie unter Erste Schritte mit Amazon S3 Transfer Acceleration.

Wenn Sie die AWS-Befehlszeilenschnittstelle (AWS CLI) und AWS SDKs verwenden, können Sie einen Parameter oder ein Flag verwenden, um zu einem Dual-Stack-Endpunkt zu wechseln. Sie können den Dual-Stack-Endpunkt auch direkt als Override des Amazon S3-Endpunkts in der Konfigurationsdatei angeben. In den folgenden Abschnitten wird erläutert, wie Dual-Stack-Endpunkte von der AWS CLI und den AWS SDKs verwendet werden.

Verwenden von Dual-Stack-Endpunkte über die AWS CLI

Dieser Abschnitt enthält Beispiele für AWS CLI-Befehle für Anfragen an einen Dual-Stack-Endpunkt. Weitere Informationen zur Einrichtung der AWS-CLI finden Sie unter Einrichten der AWS-CLI.

Sie setzen den Konfigurationswerte use_dualstack_endpoint auf true in einem Profil in Ihrer AWS Config-Datei, um alle Amazon S3-Anforderungen 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 der Verwendung von Dual-Stack-Endpunkten mit der AWS CLI werden die Adressierungsstile path und virtual unterstützt. Der Adressierungsstil, der in der Konfigurationsdatei festgelegt wird, steuert, ob der Bucketname im Hostnamen enthalten oder Teil der URL ist. Standardmäßig versucht die CLI, den virtuellen Stil zu verwenden, wann immer das möglich ist, verwendet aber auch den Pfadstil, wenn das notwendig ist. Weitere Informationen finden Sie unter AWS CLI Amazon S3-Konfiguration.

Sie können auch Konfigurationsänderungen über einen Befehl vornehmen, wie im folgenden Beispiel gezeigt, das im Standardprofil use_dualstack_endpoint auf true und addressing_style auf virtual setzt.

$ aws configure set default.s3.use_dualstack_endpoint true $ aws configure set default.s3.addressing_style virtual

Wenn Sie einen Dual-Stack-Endpunkt nur für bestimmte AWS CLI-Befehle (nicht für alle) verwenden wollen, können Sie eine der folgenden Methoden anwenden:

  • Sie können den Dual-Stack-Endpunkt pro Befehl verwenden, indem Sie den Parameter --endpoint-url auf https://s3.dualstack.aws-region.amazonaws.com oder http://s3.dualstack.aws-region.amazonaws.com für jeden s3- oder s3api-Befehl setzen.

    $ aws s3api list-objects --bucket bucketname --endpoint-url https://s3.dualstack.aws-region.amazonaws.com
  • Sie können in Ihrer AWS Config-Datei separate Profile einrichten. Legen Sie beispielsweise ein Profil an, das use_dualstack_endpoint auf true setzt, und ein Profil, das use_dualstack_endpoint nicht setzt. Wenn Sie einen Befehl ausführen, geben Sie an, welches Profil Sie verwenden wollen, abhängig davon, ob Sie den Dual-Stack-Endpunkt verwenden wollen oder nicht.

Anmerkung

Wenn Sie die AWS CLI verwenden, können Sie derzeit für Dual-Stack-Endpunkte keine Transfer Acceleration verwenden. Die AWS CLI wird jedoch demnächst unterstützt. Weitere Informationen finden Sie unter Verwenden von Transfer Acceleration von der AWS-Befehlszeilenschnittstelle (AWS CLI) aus .

Verwenden von Dual-Stack-Endpunkte von den AWS SDKs

Dieser Abschnitt enthält Beispiele für den Zugriff auf einen Dual-Stack-Endpunkt unter Verwendung der AWS SDKs.

Beispiel für AWS SDK for Java Dual-Stack-Endpunkte

Das folgende Beispiel veranschaulicht, wie Sie beim Erstellen eines Amazon S3-Clients mit dem AWS SDK for Java Dual-Stack-Endpunkte aktivieren.

Anweisungen zum Erstellen und Testen eines funktionierenden Java-Beispiels finden Sie unter Testen der Java-Codebeispiele für Amazon S3.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; public class DualStackEndpoints { public static void main(String[] args) { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; try { // Create an Amazon S3 client with dual-stack endpoints enabled. AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .withDualstackEnabled(true) .build(); s3Client.listObjects(bucketName); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }

Wenn Sie das AWS SDK for Java unter Windows einsetzen, müssen Sie möglicherweise die folgende JVM (Java Virtual Machine)-Eigenschaft festlegen:

java.net.preferIPv6Addresses=true

Beispiel für einen AWS .NET SDK Dual-Stack-Endpunkt

Wenn Sie das AWS SDK for .NET verwenden, verwenden die Klasse AmazonS3Config, um die Verwendung eines Dual-Stack-Endpunkts zu erlauben, wie im folgenden Beispiel gezeigt.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class DualStackEndpointTest { private const string bucketName = "*** bucket name ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 client; public static void Main() { var config = new AmazonS3Config { UseDualstackEndpoint = true, RegionEndpoint = bucketRegion }; client = new AmazonS3Client(config); Console.WriteLine("Listing objects stored in a bucket"); ListingObjectsAsync().Wait(); } private static async Task ListingObjectsAsync() { try { var request = new ListObjectsV2Request { BucketName = bucketName, MaxKeys = 10 }; ListObjectsV2Response response; do { response = await client.ListObjectsV2Async(request); // Process the response. foreach (S3Object entry in response.S3Objects) { Console.WriteLine("key = {0} size = {1}", entry.Key, entry.Size); } Console.WriteLine("Next Continuation Token: {0}", response.NextContinuationToken); request.ContinuationToken = response.NextContinuationToken; } while (response.IsTruncated == true); } catch (AmazonS3Exception amazonS3Exception) { Console.WriteLine("An AmazonS3Exception was thrown. Exception: " + amazonS3Exception.ToString()); } catch (Exception e) { Console.WriteLine("Exception: " + e.ToString()); } } } }

Ein vollständiges .NET-Beispiel für die Auflistung von Objekten finden Sie unter Auflisten von Schlüsseln mit dem AWS SDK for .NET.

Weitere Informationen zum Erstellen und Testen eines funktionierenden .NET-Beispiels finden Sie unter Ausführen der .NET-Codebeispiele für Amazon S3.

Verwenden von Dual-Stack-Endpunkte von der REST API

Weitere Informationen über Anfragen an Dual-Stack-Endpunkte über die REST API finden Sie unter Senden von Anforderungen an Dual-Stack-Endpunkte unter Verwendung der REST-API.