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 usare Amazon S3 Transfer Acceleration per trasferire file in modo rapido e sicuro su lunghe distanze tra il tuo client e un bucket S3 generico. Puoi abilitare Transfer Acceleration utilizzando la console S3, il AWS Command Line Interface ()AWS CLI, l'API o il. AWS SDKs

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 l'accelerazione del trasferimento per un bucket S3 per uso generico
  1. Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Nel riquadro di navigazione sinistro, scegli Bucket per uso generico.

  3. Nell'elenco dei bucket per uso generico, scegli il nome del bucket per cui desideri abilitare l'accelerazione del trasferimento.

  4. Scegli Properties (Proprietà).

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

  6. 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 AWS CLI, consulta Sviluppo con Amazon S3 utilizzando il riferimento all'API di riferimento AWS CLI di Amazon S3.

Attivazione di Transfer Acceleration su un bucket

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

L'esempio seguente imposta Status=Enabled l'attivazione dell'accelerazione del trasferimento su un bucket denominato. amzn-s3-demo-bucket Per sospendere Transfer Acceleration, usa. Status=Suspended

$ aws s3api put-bucket-accelerate-configuration --bucket amzn-s3-demo-bucket --accelerate-configuration Status=Enabled

Utilizzo di Transfer Acceleration

Puoi indirizzare tutte le richieste s3 e i s3api AWS CLI comandi di Amazon S3 effettuati da all'endpoint di accelerazione:. s3-accelerate.amazonaws.com Per fare ciò, imposta il valore use_accelerate_endpoint di configurazione su un profilo true nel tuo AWS Config file. 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: amzn-s3-demo-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:

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

  • Imposta profili separati nel tuo AWS Config file. 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

L'esempio seguente carica un file in un bucket denominato amzn-s3-demo-bucket che è stato abilitato per Transfer Acceleration utilizzando il profilo predefinito che è stato configurato per utilizzare l'endpoint di accelerazione.

$ aws s3 cp file.txt s3://amzn-s3-demo-bucket/key-name --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://amzn-s3-demo-bucket/key-name --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 in modo esplicito l'endpoint per Transfer Acceleration. bucket-name.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 funzionante, consulta Getting Started nella Developer Guide. AWS SDK per 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; 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 AWS SDK per .NET abilitare l'accelerazione del trasferimento su un bucket. Per informazioni sulla configurazione e l'esecuzione degli esempi di codice, consulta Nozioni di base su AWS SDK per .NET nella Guida per gli sviluppatori di AWS SDK per .NET .

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 il comando AWS SDK per JavaScript, vedi il PutBucketAccelerateConfigurationcomando nell'API Reference.AWS SDK per JavaScript

Python (Boto)

Per un esempio di abilitazione di Transfer Acceleration utilizzando l'SDK per Python, consulta put_bucket_accelerate_configuration nel riferimento all'API AWS SDK for Python (Boto3).

Other

Per informazioni sull'utilizzo di altri, consulta Sample Code and Libraries. AWS SDKs

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).