Konfigurieren von Amazon S3-Buckets - AWS SDK for JavaScript

Wir haben das Kommende end-of-support für AWS SDK for JavaScript v2 angekündigt. Wir empfehlen Ihnen, auf AWS SDK for JavaScript Version 3 zu migrieren. Termine, weitere Details und Informationen zur Migration finden Sie in der verlinkten Ankündigung.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfigurieren von Amazon S3-Buckets

JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • das Konfigurieren der Berechtigungen für das Cross-Origin Resource Sharing (CORS) für einen Bucket.

Das Szenario

In diesem Beispiel werden mehrere Node.js-Module verwendet, um Ihre Amazon S3-Buckets aufzulisten und die CORS- und Bucket-Protokollierung zu konfigurieren. Die Node.js-Module verwenden das SDK für JavaScript , um einen ausgewählten Amazon S3-Bucket mit diesen Methoden der Amazon S3-Clientklasse zu konfigurieren:

Weitere Informationen zur Verwendung der CORS-Konfiguration mit einem Amazon S3-Bucket finden Sie unter Cross-Origin Resource Sharing (CORS) im Benutzerhandbuch für Amazon Simple Storage Service.

Erforderliche Aufgaben

Zum Einrichten und Ausführen dieses Beispiels müssen Sie zunächst diese Aufgaben abschließen:

Konfigurieren des SDKs

Konfigurieren Sie das SDK für , JavaScript indem Sie ein globales Konfigurationsobjekt erstellen und dann die Region für Ihren Code festlegen. In diesem Beispiel ist die Region auf us-west-2 festgelegt.

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

Abrufen der CORS-Konfiguration für einen Bucket

Erstellen Sie ein Node.js-Modul mit dem Dateinamen s3_getcors.js. Das Modul ruft ein einzelnes Befehlszeilenargument ab, um den Bucket anzugeben, dessen CORS-Konfiguration Sie möchten. Stellen Sie sicher, dass Sie das SDK wie zuvor dargestellt konfigurieren. Erstellen Sie ein AWS.S3-Serviceobjekt.

Der einzige Parameter, den Sie beim Abrufen der getBucketCors-Methode weiterleiten müssen, ist der Name des ausgewählten Buckets. Wenn der Bucket derzeit über eine CORS-Konfiguration verfügt, wird diese Konfiguration von Amazon S3 als CORSRules Eigenschaft des data Parameters zurückgegeben, der an die Callback-Funktion übergeben wird.

Wenn der ausgewählte Bucket über keine CORS-Konfiguration verfügt, werden diese Informationen im error-Parameter an die Callback-Funktion zurückgegeben.

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

Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.

node s3_getcors.js BUCKET_NAME

Dieser Beispielcode finden Sie hier unter GitHub.

Einrichten der CORS-Konfiguration für einen Bucket

Erstellen Sie ein Node.js-Modul mit dem Dateinamen s3_setcors.js. Das Modul übernimmt mehrere Befehlszeilenargumente. Das erste gibt den Bucket an, dessen CORS-Konfiguration Sie festlegen möchten. Zusätzliche Argumente listen die HTTP-Methoden auf (POST, GET, PUT, POST, PATCH, DELETE), die Sie für den Bucket zulassen möchten. Konfigurieren Sie das SDK wie zuvor dargestellt.

Erstellen Sie ein AWS.S3-Serviceobjekt. Erstellen Sie als Nächstes ein JSON-Objekt, um die Werte für die CORS-Konfiguration zu umfassen, wie es für die putBucketCors-Methode des AWS.S3-Serviceobjekts erforderlich ist. Geben Sie "Authorization" für den AllowedHeaders-Wert und "*" für den AllowedOrigins-Wert an. Geben Sie den Wert für AllowedMethods anfänglich als leeres Array an.

Geben Sie die zulässigen Methoden für das Node.js-Modul als Befehlszeilen-Parameter an, wobei Sie die jeweiligen Methoden hinzufügen, die einem der Parameter entsprechen. Fügen Sie die resultierende CORS-Konfiguration dem Konfigurationsarray hinzu, das im CORSRules-Parameter enthalten ist. Legen Sie den Bucket fest, den Sie im Bucket-Parameter für CORS konfigurieren möchten.

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

Um das Beispiel auszuführen, müssen Sie den folgenden Befehl, einschließlich einer oder mehrerer HTTP-Methoden, in der Befehlszeile eingeben, wie nachfolgend dargestellt.

node s3_setcors.js BUCKET_NAME get put

Dieser Beispielcode finden Sie hier unter GitHub.