Utilizzo degli endpoint dual-stack Amazon S3 - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo degli endpoint dual-stack Amazon S3

Gli endpoint dual-stack Amazon S3; supportano le richieste ai bucket S3 su IPv6 e IPv4. In questa sezione viene descritto come utilizzare gli endpoint dual-stack.

Endpoint dual-stack Amazon S3

Quando effettui una richiesta a un endpoint dual-stack, l'URL del bucket restituisce un indirizzo IPv6 o IPv4. Per ulteriori informazioni sull'accesso a un bucket su IPv6, consulta Esecuzione di richieste ad Amazon S3 su IPv6.

Quando si utilizza l'API REST, è possibile accedere direttamente a un endpoint Amazon S3 utilizzando il nome dell'endpoint (URI). È possibile accedere a un bucket S3 tramite un endpoint dual-stack utilizzando un nome di endpoint in stile hosting virtuale o in stile percorso. Amazon S3 supporta solo i nomi di endpoint dual-stack regionali, il che significa che è necessario specificare la regione come parte del nome.

Utilizzare le convenzioni di denominazione seguenti per i nomi di endpoint dual-stack in stile hosting virtuale e in stile percorso.

  • Endpoint dual-stack in stile hosting virtuale:

    nomebucket.s3.dualstack.regione-aws.amazonaws.com

     

  • Endpoint dual-stack in stile percorso

    s3.dualstack.regione-aws.amazonaws.com/nomebucket

Per ulteriori informazioni sullo stile del nome degli endpoint, consulta Accesso ed elenco di un bucket Amazon S3. Per un elenco di endpoint di Amazon S3, consultare la sezione relativa a regioni ed endpoint nella Riferimenti generali di AWS.

Importante

È possibile utilizzare Transfer Acceleration con gli endpoint dual-stack. Per ulteriori informazioni, consulta Nozioni di base su Amazon S3 Transfer Acceleration.

Nota

I due tipi di endpoint VPC per accedere ad Amazon S3 (gli endpoint VPC di interfaccia e gli endpoint VPC del gateway) non supportano il dual-stack. Per ulteriori informazioni sugli endpoint VPC per Amazon S3, consulta AWS PrivateLink per Amazon S3.

Quando usi AWS Command Line Interface (AWS CLI) e gli AWS SDK, puoi usare un parametro o un flag per passare a un endpoint dual-stack. È inoltre possibile specificare l'endpoint dual-stack direttamente come sostituzione dell'endpoint Amazon S3 nel file di configurazione. Le sezioni seguenti descrivono come utilizzare gli endpoint dual-stack degli e degli SDK. AWS CLI AWS

Utilizzo degli endpoint dual-stack di AWS CLI

Questa sezione fornisce esempi di AWS CLI comandi utilizzati per effettuare richieste a un endpoint dual-stack. Per istruzioni sulla configurazione di, vedere. AWS CLISviluppo con Amazon S3 tramite la AWS CLI

Imposta il valore use_dualstack_endpoint di configurazione su un profilo nel tuo AWS Config file per indirizzare tutte le richieste Amazon S3 effettuate dai s3api AWS CLI comandi s3 and all'endpoint dual-stack per la regione specificata. true La regione va specificata nel file di configurazione o in un comando tramite l'opzione --region.

Quando si utilizzano endpoint dual-stack con, sono supportati entrambi gli stili di indirizzamento. AWS CLIpath virtual Lo stile di indirizzamento, impostato nel file di configurazione, controlla se il nome del bucket si trova nel nome host o fa parte dell'URL. Per default, l'interfaccia a riga di comando (CLI) tenta di utilizzare lo stile virtuale, se possibile, tornando allo stile percorso, se necessario. Per ulteriori informazioni, consulta Configurazione di Amazon S3 per AWS CLI.

È anche possibile apportare modifiche alla configurazione tramite un comando, come mostrato nell'esempio seguente, dove use_dualstack_endpoint viene impostato su true e addressing_style viene impostato su virtual nel profilo di default.

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

Se desideri utilizzare un endpoint dual-stack solo per AWS CLI comandi specifici (non tutti i comandi), puoi utilizzare uno dei seguenti metodi:

  • È possibile utilizzare l'endpoint dual-stack per comando, impostando il parametro --endpoint-url su https://s3.dualstack.aws-region.amazonaws.com o http://s3.dualstack.aws-region.amazonaws.com per un comando s3 o s3api.

    $ aws s3api list-objects --bucket bucketname --endpoint-url https://s3.dualstack.aws-region.amazonaws.com
  • Puoi impostare profili separati nel tuo file. AWS Config Ad esempio, si può creare un profilo che imposta use_dualstack_endpoint su true e un profilo che non imposta use_dualstack_endpoint. Quando si esegue un comando, specificare il profilo da usare, a seconda se si desidera o meno utilizzare l'endpoint dual-stack.

Nota

Al momento non AWS CLI è possibile utilizzare l'accelerazione del trasferimento con endpoint dual-stack. Tuttavia, il supporto per il sarà presto disponibile. AWS CLI Per ulteriori informazioni, consulta Usando il AWS CLI.

Utilizzo degli endpoint dual-stack dagli SDK AWS

Questa sezione fornisce esempi di come accedere a un endpoint dual-stack utilizzando gli SDK. AWS

AWS SDK for Java esempio di endpoint dual-stack

Nell'esempio seguente viene mostrato come abilitare endpoint dual-stack durante la creazione di un client Amazon S3 utilizzando la AWS SDK for Java.

Per istruzioni su come creare e testare un esempio Java funzionante, consulta la Guida introduttiva alla Developer Guide. AWS SDK for Java

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(); } } }

Se si utilizza AWS SDK for Java su Windows, potrebbe essere necessario impostare la seguente proprietà della macchina virtuale Java (JVM):

java.net.preferIPv6Addresses=true

AWS Esempio di endpoint dual-stack DI.NET SDK

Quando si utilizza l' AWS SDK for .NET, si utilizza AmazonS3Config la classe per abilitare l'uso di un endpoint dual-stack, come illustrato nell'esempio seguente.

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()); } } } }

Per un esempio .NET completo per l'elenco di oggetti, consulta Elenco delle chiavi oggetto a livello di programmazione.

Per informazioni sulla configurazione e l'esecuzione degli esempi di codice, consulta Getting Started with the AWS SDK for .NET nella AWS SDK for .NET Developer Guide.

Utilizzo degli endpoint dual-stack dall'API REST

Per informazioni su come eseguire richieste su endpoint dual-stack tramite l'API REST, consulta Esecuzione di richieste a endpoint Dual-Stack utilizzando l'API REST.