Verwenden eines Amazon S3-Buckets als statischen Web-Host - 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.

Verwenden eines Amazon S3-Buckets als statischen Web-Host

JavaScript code example that applies to Node.js execution

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:

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.