Utilizzo di un bucket di Amazon S3 come host Web statico - AWS SDK for JavaScript

Abbiamo annunciato l'imminente uscita end-of-support per la AWS SDK for JavaScript v2. Ti consigliamo di migrare alla AWS SDK for JavaScript v3. Per date, dettagli aggiuntivi e informazioni su come effettuare la migrazione, consulta l'annuncio collegato.

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 di un bucket di Amazon S3 come host Web statico

JavaScript code example that applies to Node.js execution

Questo esempio di codice di Node.js illustra:

  • Come configurare un bucket Amazon S3 come host web statico.

Lo scenario

In questo esempio, una serie di moduli di Node.js viene utilizzata per configurare tutti i bucket per espletare funzioni di host Web statico. I moduli Node.js utilizzano l'SDK JavaScript per configurare un bucket Amazon S3 selezionato utilizzando questi metodi della classe client Amazon S3:

Per ulteriori informazioni sull'utilizzo di un bucket Amazon S3 come host Web statico, consulta Hosting a Static Website on Amazon S3 nella Amazon Simple Storage Service User Guide.

Attività prerequisite

Per configurare ed eseguire questo esempio, è necessario completare queste attività:

Configurazione dell'SDK

Configura l'SDK per JavaScript creando un oggetto di configurazione globale, quindi impostando la regione per il codice. Nell'esempio, la regione è impostata su us-west-2.

// Load the SDK for JavaScript var AWS = require('aws-sdk'); // Set the Region AWS.config.update({region: 'us-west-2'});

Recupero dell'attuale configurazione del sito Web di un bucket

Crea un modulo Node.js con il nome del file s3_getbucketwebsite.js. Il modulo richiede un singolo argomento della riga di comando per specificare il bucket di cui desideri la configurazione del sito Web. Configura l'SDK come mostrato in precedenza.

Crea un oggetto di servizioAWS.S3. Crea una funzione che recupera l'attuale configurazione del sito Web di un bucket per il bucket selezionato nell'elenco dei bucket. L'unico parametro che deve essere passato è il nome del bucket selezionato quando si chiama il metodo getBucketWebsite. Se il bucket ha attualmente una configurazione del sito Web, tale configurazione viene restituita da Amazon S3 nel data parametro passato alla funzione di callback.

Se il bucket selezionato non dispone di alcuna configurazione del sito Web, tali informazioni vengono restituite alla funzione di callback nel parametro err.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); var bucketParams = { Bucket: process.argv[2] }; // call S3 to retrieve the website configuration for selected bucket s3.getBucketWebsite(bucketParams, function (err, data) { if (err) { console.log("Error", err); } else if (data) { console.log("Success", data); } });

Digita la seguente riga di comando per eseguire l'esempio.

node s3_getbucketwebsite.js BUCKET_NAME

Questo codice di esempio può essere trovato qui su. GitHub

Impostazione della configurazione del sito Web di un bucket

Crea un modulo Node.js con il nome del file s3_setbucketwebsite.js. Assicurati di configurare l'SDK come mostrato in precedenza. Crea un oggetto di servizioAWS.S3.

Crea una funzione che applica una configurazione del sito Web di un bucket. La configurazione consente al bucket selezionato di fungere da host Web statico. Le configurazioni dei siti Web sono specificate in formato JSON. In primo luogo, crea un oggetto JSON che contenga tutti i valori per specificare la configurazione del sito Web, salvo per il valore Key che identifica il documento di errore e il valore Suffix che identifica il documento di indice.

Inserisci i valori degli elementi di input di testo nell'oggetto JSON. Prepara i parametri per il metodo putBucketWebsite, tra cui il nome del bucket e la configurazione del sito Web JSON.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); // Create JSON for putBucketWebsite parameters var staticHostParams = { Bucket: "", WebsiteConfiguration: { ErrorDocument: { Key: "", }, IndexDocument: { Suffix: "", }, }, }; // Insert specified bucket name and index and error documents into params JSON // from command line arguments staticHostParams.Bucket = process.argv[2]; staticHostParams.WebsiteConfiguration.IndexDocument.Suffix = process.argv[3]; staticHostParams.WebsiteConfiguration.ErrorDocument.Key = process.argv[4]; // set the new website configuration on the selected bucket s3.putBucketWebsite(staticHostParams, function (err, data) { if (err) { // display error message console.log("Error", err); } else { // update the displayed website configuration for the selected bucket console.log("Success", data); } });

Digita la seguente riga di comando per eseguire l'esempio.

node s3_setbucketwebsite.js BUCKET_NAME INDEX_PAGE ERROR_PAGE

Questo codice di esempio può essere trovato qui su GitHub.

Eliminazione della configurazione del sito Web di un bucket

Crea un modulo Node.js con il nome del file s3_deletebucketwebsite.js. Assicurati di configurare l'SDK come mostrato in precedenza. Crea un oggetto di servizioAWS.S3.

Crea una funzione che elimina la configurazione del sito Web per il bucket selezionato. L'unico parametro che deve essere passato quando si chiama il metodo deleteBucketWebsite è il nome del bucket selezionato.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); var bucketParams = { Bucket: process.argv[2] }; // call S3 to delete website configuration for selected bucket s3.deleteBucketWebsite(bucketParams, function (error, data) { if (error) { console.log("Error", err); } else if (data) { console.log("Success", data); } });

Digita la seguente riga di comando per eseguire l'esempio.

node s3_deletebucketwebsite.js BUCKET_NAME

Questo codice di esempio può essere trovato qui su GitHub.