Configurazione dei bucket di Amazon S3 - 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à.

Configurazione dei bucket di Amazon S3

JavaScript code example that applies to Node.js execution

Questo esempio di codice di Node.js illustra:

  • Come configurare le autorizzazioni della condivisione delle risorse multiorigine (CORS) per un bucket.

Lo scenario

In questo esempio, una serie di moduli di Node.js vengono utilizzati per elencare i bucket Amazon S3 e configurare CORS e la registrazione dei bucket. 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 della configurazione CORS con un bucket Amazon S3, consulta Cross-Origin Resource Sharing (CORS) nella Guida per l'utente di Amazon Simple Storage Service.

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

Recuperare una configurazione CORS del bucket

Crea un modulo Node.js con il nome del file s3_getcors.js. Il modulo richiede un singolo argomento della riga di comando per specificare il bucket di cui desideri la configurazione CORS. Assicurati di configurare l'SDK come mostrato in precedenza. Crea un oggetto di servizioAWS.S3.

L'unico parametro che deve essere passato è il nome del bucket selezionato quando si chiama il metodo getBucketCors. Se il bucket ha attualmente una configurazione CORS, tale configurazione viene restituita da Amazon S3 come proprietà CORSRules del parametro passato data alla funzione di callback.

Se il bucket selezionato non dispone di alcuna configurazione CORS, tali informazioni vengono restituite alla funzione di callback nel parametro error.

// 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" }); // Set the parameters for S3.getBucketCors var bucketParams = { Bucket: process.argv[2] }; // call S3 to retrieve CORS configuration for selected bucket s3.getBucketCors(bucketParams, function (err, data) { if (err) { console.log("Error", err); } else if (data) { console.log("Success", JSON.stringify(data.CORSRules)); } });

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

node s3_getcors.js BUCKET_NAME

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

Impostazione di una configurazione CORS del bucket

Crea un modulo Node.js con il nome del file s3_setcors.js. Il modulo richiede più argomenti della riga di comando, il primo dei quali specifica il bucket di cui desideri impostare la configurazione CORS. Altri argomenti enumerano i metodi HTTP (POST, GET, PUT, PATCH, DELETE, POST) che desideri consentire per il bucket. Configura l'SDK come mostrato in precedenza.

Crea un oggetto di servizioAWS.S3. Successivamente crea un oggetto JSON per conservare i valori della configurazione CORS, secondo quanto richiesto dal metodo putBucketCors dell'oggetto di servizio AWS.S3. Specifica "Authorization" per il valore AllowedHeaders e "*" per il valore AllowedOrigins. Inizialmente imposta il valore di AllowedMethods come matrice vuota.

Specifica i metodi consentiti come parametri della riga di comando per il modulo di Node.js, aggiungendo ciascuno dei metodi che corrispondono a uno dei parametri. Aggiungi la configurazione CORS risultante alla gamma di configurazioni contenute nel parametro CORSRules. Specifica il bucket da configurare per CORS nel parametro Bucket.

// 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 initial parameters JSON for putBucketCors var thisConfig = { AllowedHeaders: ["Authorization"], AllowedMethods: [], AllowedOrigins: ["*"], ExposeHeaders: [], MaxAgeSeconds: 3000, }; // Assemble the list of allowed methods based on command line parameters var allowedMethods = []; process.argv.forEach(function (val, index, array) { if (val.toUpperCase() === "POST") { allowedMethods.push("POST"); } if (val.toUpperCase() === "GET") { allowedMethods.push("GET"); } if (val.toUpperCase() === "PUT") { allowedMethods.push("PUT"); } if (val.toUpperCase() === "PATCH") { allowedMethods.push("PATCH"); } if (val.toUpperCase() === "DELETE") { allowedMethods.push("DELETE"); } if (val.toUpperCase() === "HEAD") { allowedMethods.push("HEAD"); } }); // Copy the array of allowed methods into the config object thisConfig.AllowedMethods = allowedMethods; // Create array of configs then add the config object to it var corsRules = new Array(thisConfig); // Create CORS params var corsParams = { Bucket: process.argv[2], CORSConfiguration: { CORSRules: corsRules }, }; // set the new CORS configuration on the selected bucket s3.putBucketCors(corsParams, function (err, data) { if (err) { // display error message console.log("Error", err); } else { // update the displayed CORS config for the selected bucket console.log("Success", data); } });

Per eseguire l'esempio, digita la seguente stringa nella riga di comando, tra cui uno o più metodi HTTP come mostrato.

node s3_setcors.js BUCKET_NAME get put

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