Abilitazione e utilizzo di S3 Transfer Acceleration - 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à.

Abilitazione e utilizzo di S3 Transfer Acceleration

Puoi utilizzare Amazon S3 Transfer Acceleration per trasferire i file in modo rapido e sicuro su lunghe distanze tra il tuo client e un bucket S3. Puoi abilitare Transfer Acceleration utilizzando la console S3, AWS Command Line Interface (AWS CLI), l'API o gli SDK. AWS

In questa sezione vengono forniti alcuni esempi di come abilitare Amazon S3 Transfer Acceleration in un bucket e utilizzare l'endpoint di accelerazione per il bucket abilitato.

Per ulteriori informazioni sui requisiti di Transfer Acceleration, consulta Configurazione di trasferimenti veloci e sicuri di file con Amazon S3 Transfer Acceleration.

Nota

Se desideri confrontare le velocità di caricamento accelerate e non accelerate, apri lo strumento Speed Comparison di Amazon S3 Transfer Acceleration.

Lo strumento Speed Comparison utilizza il caricamento in più parti per trasferire un file dal browser a vari file Regioni AWS con e senza l'accelerazione di trasferimento di Amazon S3. Puoi confrontare la velocità di caricamento per i caricamenti diretti e trasferire i caricamenti accelerati per Regione.

Per abilitare Transfer Acceleration per un bucket S3
  1. Accedi AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nell'elenco Bucket, scegliere il nome del bucket per il quale si vuole abilitare Transfer Acceleration.

  3. Scegli Properties (Proprietà).

  4. In Transfer acceleration (Accelerazione trasferimento), scegliere Edit (Modifica).

  5. Scegliere Enable (Abilita) e quindi Save changes (Salva modifiche).

Per accedere a trasferimenti di dati accelerati
  1. Dopo che Amazon S3 ha attivato Transfer Acceleration per il bucket, consulta la scheda Proprietà del bucket.

  2. In Transfer acceleration, Endpoint accelerated (Accelerated endpoint) visualizza l'endpoint Transfer acceleration per il bucket. Utilizza questo endpoint per accedere ai trasferimenti accelerati di dati da e verso il bucket.

    Sospendendo Transfer Acceleration, l'endpoint dell'accelerazione non funziona più.

Di seguito sono riportati alcuni esempi di AWS CLI comandi utilizzati per Transfer Acceleration. Per istruzioni sulla configurazione di AWS CLI, vedereSviluppo con Amazon S3 tramite la AWS CLI.

Attivazione di Transfer Acceleration su un bucket

Utilizzate il AWS CLI put-bucket-accelerate-configurationcomando per abilitare o sospendere Transfer Acceleration su un bucket.

Nell'esempio che segue Status=Enabled viene impostato per l'abilitazione di Transfer Acceleration in un bucket. Viene utilizzato Status=Suspended per sospendere Transfer Acceleration.

$ aws s3api put-bucket-accelerate-configuration --bucket bucketname --accelerate-configuration Status=Enabled

Utilizzo di Transfer Acceleration

Puoi indirizzare tutte le richieste Amazon S3 effettuate dai AWS CLI comandi s3 e s3api all'endpoint di accelerazione:. s3-accelerate.amazonaws.com Per fare ciò, imposta il valore use_accelerate_endpoint di configurazione su true in un profilo nel tuo file AWS Config. Per utilizzare l'endpoint di accelerazione, è necessario che Transfer Acceleration sia abilitato nel bucket.

Tutte le richieste vengono inviate tramite il modello di indirizzamento virtuale del bucket: my-bucket.s3-accelerate.amazonaws.com. Qualsiasi richiesta ListBuckets, CreateBucket e DeleteBucket non verrà inviata all'endpoint di accelerazione in quanto tale endpoint non supporta queste operazioni.

Per ulteriori informazioni su use_accelerate_endpoint, consulta Configurazione di AWS CLI S3 in Guida di riferimento dei comandi AWS CLI .

Nell'esempio che segue, use_accelerate_endpoint viene impostato su true nel profilo di default.

$ aws configure set default.s3.use_accelerate_endpoint true

Se desideri utilizzare l'endpoint di accelerazione per alcuni AWS CLI comandi ma non per altri, puoi utilizzare uno dei due metodi seguenti:

  • Puoi utilizzare l'endpoint di accelerazione per qualsiasi comando s3 o s3api impostando il parametro --endpoint-url su https://s3-accelerate.amazonaws.com.

  • Imposta profili separati nel tuo file AWS Config. Ad esempio, si può creare un profilo che imposta use_accelerate_endpoint su true e un profilo che non imposta use_accelerate_endpoint. Quando si esegue un comando, specifica il profilo da usare, a seconda dell'intenzione di utilizzare o meno l'endpoint di accelerazione.

Caricamento di un oggetto in un bucket abilitato per Transfer Acceleration

Nell'esempio che segue viene caricato un file in un bucket abilitato per Transfer Acceleration mediante il profilo predefinito configurato per l'utilizzo dell'endpoint di accelerazione.

$ aws s3 cp file.txt s3://bucketname/keyname --region region

Nell'esempio che segue viene caricato un file in un bucket abilitato per Transfer Acceleration mediante il parametro --endpoint-url per specificare l'endpoint di accelerazione.

$ aws configure set s3.addressing_style virtual $ aws s3 cp file.txt s3://bucketname/keyname --region region --endpoint-url https://s3-accelerate.amazonaws.com

Di seguito sono riportati alcuni esempi di utilizzo di Transfer Acceleration per caricare oggetti su Amazon S3 utilizzando l' AWS SDK. Alcuni dei linguaggi supportati dall' AWS SDK (ad esempio, Java e.NET) utilizzano un flag di configurazione del client di accelerazione degli endpoint, quindi non è necessario impostare esplicitamente l'endpoint per Transfer Acceleration su bucketname .s3-accelerate.amazonaws.com.

Java

Nell'esempio seguente viene mostrato come utilizzare un endpoint di accelerazione per il caricamento di un oggetto in Amazon S3. Inoltre, vengono effettuate le seguenti operazioni:

  • Viene creato un AmazonS3Client configurato per utilizzare un endpoint di accelerazione. Tutti i bucket cui accede il client devono avere Transfer Acceleration abilitato.

  • Abilita Transfer Acceleration in un bucket specificato. Questa fase è necessaria solo se sul bucket specificato non è ancora abilitato Transfer Acceleration.

  • Viene verificato se Transfer Acceleration è abilitato per il bucket specificato.

  • Viene caricato un nuovo oggetto nel bucket specificato utilizzando l'endpoint di accelerazione del bucket.

Per ulteriori informazioni sull'uso di Transfer Acceleration, consulta Nozioni di base su Amazon S3 Transfer Acceleration. Per istruzioni su come creare e testare un esempio di utilizzo, consulta Test degli esempi di codice Java di 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; import com.amazonaws.services.s3.model.BucketAccelerateConfiguration; import com.amazonaws.services.s3.model.BucketAccelerateStatus; import com.amazonaws.services.s3.model.GetBucketAccelerateConfigurationRequest; import com.amazonaws.services.s3.model.SetBucketAccelerateConfigurationRequest; public class TransferAcceleration { public static void main(String[] args) { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; String keyName = "*** Key name ***"; try { // Create an Amazon S3 client that is configured to use the accelerate endpoint. AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withRegion(clientRegion) .withCredentials(new ProfileCredentialsProvider()) .enableAccelerateMode() .build(); // Enable Transfer Acceleration for the specified bucket. s3Client.setBucketAccelerateConfiguration( new SetBucketAccelerateConfigurationRequest(bucketName, new BucketAccelerateConfiguration( BucketAccelerateStatus.Enabled))); // Verify that transfer acceleration is enabled for the bucket. String accelerateStatus = s3Client.getBucketAccelerateConfiguration( new GetBucketAccelerateConfigurationRequest(bucketName)) .getStatus(); System.out.println("Bucket accelerate status: " + accelerateStatus); // Upload a new object using the accelerate endpoint. s3Client.putObject(bucketName, keyName, "Test object for transfer acceleration"); System.out.println("Object \"" + keyName + "\" uploaded with transfer acceleration."); } 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(); } } }
.NET

L'esempio seguente mostra come utilizzare per abilitare l'accelerazione del trasferimento su un bucket. AWS SDK for .NET Per istruzioni su come creare e testare un esempio di utilizzo, consulta Esecuzione degli esempi di codice .NET di Amazon S3.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class TransferAccelerationTest { 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 s3Client; public static void Main() { s3Client = new AmazonS3Client(bucketRegion); EnableAccelerationAsync().Wait(); } static async Task EnableAccelerationAsync() { try { var putRequest = new PutBucketAccelerateConfigurationRequest { BucketName = bucketName, AccelerateConfiguration = new AccelerateConfiguration { Status = BucketAccelerateStatus.Enabled } }; await s3Client.PutBucketAccelerateConfigurationAsync(putRequest); var getRequest = new GetBucketAccelerateConfigurationRequest { BucketName = bucketName }; var response = await s3Client.GetBucketAccelerateConfigurationAsync(getRequest); Console.WriteLine("Acceleration state = '{0}' ", response.Status); } catch (AmazonS3Exception amazonS3Exception) { Console.WriteLine( "Error occurred. Message:'{0}' when setting transfer acceleration", amazonS3Exception.Message); } } } }

Durante il caricamento di un oggetto in un bucket con Transfer Acceleration abilitato, specifica l'utilizzo dell'endpoint di accelerazione durante la creazione di un client.

var client = new AmazonS3Client(new AmazonS3Config { RegionEndpoint = TestRegionEndpoint, UseAccelerateEndpoint = true }
Javascript

Per un esempio di abilitazione di Transfer Acceleration utilizzando l' AWS SDK per JavaScript, consulta Calling the putBucketAccelerate Configuration operation in the AWS SDK for API Reference. JavaScript

Python (Boto)

Per un esempio di come abilitare Transfer Acceleration mediante l'utilizzo di SDK per Python, consulta put_bucket_accelerate_configuration nella Documentazione di riferimento dell'API SDK AWS per Python (Boto3).

Other

Per informazioni sull'utilizzo di altri AWS SDK, consulta Codice di esempio e librerie.

Utilizza l'operazione REST API PutBucketAccelerateConfiguration per abilitare la configurazione accelerata su un bucket esistente.

Per ulteriori informazioni, consulta PutBucketAccelerateConfiguration in Amazon Simple Storage Service API Reference (Guida di riferimento per l'API di Amazon Simple Storage Service).