Wir haben das Kommende end-of-support für AWS SDK for JavaScript v2 angekündigt
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
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:
-
Installieren Sie Node.js. Weitere Informationen über die Installation von Node.js finden Sie auf der Node.js-Website
. -
Erstellen Sie eine freigegebene Konfigurationsdatei mit Ihren Anmeldeinformationen. Weitere Informationen zum Bereitstellen einer Datei mit gemeinsam genutzten Anmeldeinformationen finden Sie unter Laden der Anmeldeinformationen in Node.js aus der freigegebenen Anmeldeinformationsdatei.
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