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.
Verwenden eines Amazon S3-Buckets als statischen Web-Host
Dieses Node.js-Codebeispiel zeigt:
-
So richten Sie einen Amazon S3-Bucket als statischen Webhost ein.
Das Szenario
In diesem Beispiel werden mehrere Node.js-Module verwendet, um einen Ihrer Buckets als statischen Web-Host 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 eines Amazon S3-Buckets als statischen Webhost finden Sie unter Hosten einer statischen Website auf Amazon S3 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 aktuellen Konfiguration einer Bucket-Website
Erstellen Sie ein Node.js-Modul mit dem Dateinamen s3_getbucketwebsite.js
. Das Modul ruft ein einzelnes Befehlszeilenargument ab, um den Bucket anzugeben, dessen Website-Konfiguration Sie möchten. Konfigurieren Sie das SDK wie zuvor dargestellt.
Erstellen Sie ein AWS.S3
-Serviceobjekt. Erstellen Sie eine Funktion, die die aktuelle Website-Konfiguration für den Bucket abruft, der in der Bucket-Liste ausgewählt wurde. Der einzige Parameter, den Sie beim Abrufen der getBucketWebsite
-Methode weiterleiten müssen, ist der Name des ausgewählten Buckets. Wenn der Bucket derzeit über eine Website-Konfiguration verfügt, wird diese Konfiguration von Amazon S3 in dem data
Parameter zurückgegeben, der an die Rückruffunktion übergeben wird.
Wenn der ausgewählte Bucket über keine Website-Konfiguration verfügt, werden diese Informationen im err
-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" }); 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); } });
Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.
node s3_getbucketwebsite.js
BUCKET_NAME
Dieser Beispielcode finden Sie hier unter GitHub
Einrichten einer Website-Konfiguration eines Buckets
Erstellen Sie ein Node.js-Modul mit dem Dateinamen s3_setbucketwebsite.js
. Stellen Sie sicher, dass Sie das SDK wie zuvor dargestellt konfigurieren. Erstellen Sie ein AWS.S3
-Serviceobjekt.
Erstellen Sie eine Funktion, die eine Bucket-Website-Konfiguration anwendet. Die Konfiguration ermöglicht es dem ausgewählten Bucket als statischer Web-Host zu fungieren. Website-Konfigurationen werden in JSON angegeben. Erstellen Sie zunächst ein JSON-Objekt mit allen Werten, die in der Website-Konfiguration festgelegt werden sollen, mit Ausnahme des Key
-Werts, der das Fehlerdokument und den Suffix
-Wert für das Indexdokument identifiziert.
Fügen Sie die Werte der Texteingabe-Elemente in das JSON-Objekt ein. Bereiten Sie die Parameter für die putBucketWebsite
-Methode vor, einschließlich dem Namen des Buckets und der JSON-Website-Konfiguration.
// 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); } });
Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.
node s3_setbucketwebsite.js
BUCKET_NAME
INDEX_PAGE
ERROR_PAGE
Dieser Beispielcode finden Sie hier unter GitHub
Löschen der Website-Konfiguration eines Buckets
Erstellen Sie ein Node.js-Modul mit dem Dateinamen s3_deletebucketwebsite.js
. Stellen Sie sicher, dass Sie das SDK wie zuvor dargestellt konfigurieren. Erstellen Sie ein AWS.S3
-Serviceobjekt.
Erstellen Sie eine Funktion, die die Website-Konfiguration des ausgewählten Buckets löscht. Der einzige Parameter, den Sie beim Abrufen der deleteBucketWebsite
-Methode weiterleiten müssen, ist der Name des ausgewählten Buckets.
// 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); } });
Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.
node s3_deletebucketwebsite.js
BUCKET_NAME
Dieser Beispielcode finden Sie hier unter GitHub