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.
Themen
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.
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
aufhttps://s3.dualstack.
oderaws-region
.amazonaws.comhttp://s3.dualstack.
für jedenaws-region
.amazonaws.coms3
- oders3api
-Befehl setzen.$
aws s3api list-objects --bucketbucketname
--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
auftrue
setzt, und ein Profil, dasuse_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.
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.