Verwenden eines Amazon S3 S3-Buckets als statischen Web-Host - AWS SDK for JavaScript

Hilf uns, das zu verbessernAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation, indem Sie Feedback mithilfe derFeedbackverlinken, oder erstellen Sie ein Issue oder Pull Request aufGitHub.

DieAWS SDK for JavaScriptReferenzhandbuch zur V3-APIbeschreibt ausführlich alle API-Operationen für denAWS SDK for JavaScriptVersion 3 (V3).

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 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 S3-Bucket als statischen Web-Host 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 So konfigurieren Sie einen ausgewählten Amazon S3 S3-Bucket mithilfe dieser Methoden der Amazon S3 S3--Client-Klasse:

Weitere Informationen zur Verwendung eines Amazon S3 S3-Buckets als statischen Web-Host finden Sie unterHosten einer statischen Website auf Amazon S3imAmazon Simple Storage Service — Benutzerhandbuchaus.

Erforderliche Aufgaben

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

Wichtig

Diese Beispiele zeigen, wie Client-Serviceobjekte importiert/exportiert und mit ECMASCRIPT6 (ES6) befehligt werden.

  • Dies erfordert Node.js Version 13.x oder höher. Informationen zum Herunterladen der neuesten Version von Node.js finden Sie unterNode.js.aus.

  • Wenn Sie lieber die CommonJS-Syntax verwenden möchten, finden Sie unterJavaScript ES6/CommonJS-Syntaxaus.

Abrufen der aktuellen Bucket-Website-Konfiguration

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem Dateinamens3Client.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das Amazon S3 S3-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion.

// Create service client module using ES6 syntax. import { S3Client } from "@aws-sdk/client-s3"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon S3 service client object. const s3Client = new S3Client({ region: REGION }); export { s3Client };

Dieser Code ist verfügbarhier auf GitHubaus.

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 gezeigt, einschließlich der Installation der erforderlichen Clients und Pakete.

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 GetBucketWebsiteCommand-Methode weiterleiten müssen, ist der Name des ausgewählten Buckets. Wenn der Bucket derzeit über eine Website-Konfiguration verfügt, gibt diese Konfiguration von Amazon S3 imdataParameter, der an die Callback-Funktion übergeben werden.

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

// Import required AWS SDK clients and commands for Node.js. import { GetBucketWebsiteCommand } from "@aws-sdk/client-s3"; import { s3Client } from "./libs/s3Client.js"; // Helper function that creates an Amazon S3 service client module. // Create the parameters for calling export const bucketParams = { Bucket: "BUCKET_NAME" }; export const run = async () => { try { const data = await s3Client.send(new GetBucketWebsiteCommand(bucketParams)); console.log("Success", data); return data; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Geben Sie an der Eingabeaufforderung Folgendes ein.

node s3_getbucketwebsite.js

Diesen Beispielcode finden Sie hier auf GitHub.

Einstellung einer Bucket-Website-Konfiguration

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem Dateinamens3Client.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das Amazon S3 S3-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion.

// Create service client module using ES6 syntax. import { S3Client } from "@aws-sdk/client-s3"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon S3 service client object. const s3Client = new S3Client({ region: REGION }); export { s3Client };

Dieser Code ist verfügbarhier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen s3_setbucketwebsite.js. Stellen Sie sicher, dass Sie das SDK wie zuvor dargestellt konfigurieren, einschließlich der Installation der erforderlichen Clients und Pakete. Erstellen einesS3Client-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 PutBucketWebsiteCommand-Methode vor, einschließlich dem Namen des Buckets und der JSON-Website-Konfiguration.

// Import required AWS SDK clients and commands for Node.js. import { PutBucketWebsiteCommand } from "@aws-sdk/client-s3"; import { s3Client } from "./libs/s3Client.js"; // Helper function that creates an Amazon S3 service client module. // Create the parameters for the bucket export const bucketParams = { Bucket: "BUCKET_NAME" }; export const staticHostParams = { Bucket: bucketParams, WebsiteConfiguration: { ErrorDocument: { Key: "", }, IndexDocument: { Suffix: "", }, }, }; export const run = async () => { // Insert specified bucket name and index and error documents into parameters JSON // from command line arguments staticHostParams.Bucket = bucketParams; staticHostParams.WebsiteConfiguration.IndexDocument.Suffix = "INDEX_PAGE"; // The index document inserted into parameters JSON. staticHostParams.WebsiteConfiguration.ErrorDocument.Key = "ERROR_PAGE"; // The error document inserted into parameters JSON. // Set the new website configuration on the selected bucket. try { const data = await s3Client.send(new PutBucketWebsiteCommand(staticHostParams)); console.log("Success", data); } catch (err) { console.log("Error", err); } }; run();

Geben Sie an der Eingabeaufforderung Folgendes ein.

node s3_setbucketwebsite.js

Diesen Beispielcode finden Sie hier auf GitHub.

Löschen einer Bucket-Website-Konfiguration

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem Dateinamens3Client.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das Amazon S3 S3-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion.

// Create service client module using ES6 syntax. import { S3Client } from "@aws-sdk/client-s3"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon S3 service client object. const s3Client = new S3Client({ region: REGION }); export { s3Client };

Dieser Code ist verfügbarhier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen s3_deletebucketwebsite.js. Stellen Sie sicher, dass Sie das SDK wie zuvor dargestellt konfigurieren, einschließlich der Installation der erforderlichen Clients und Pakete. Erstellen einesS3Client-Serviceobjekt.

Erstellen Sie eine Funktion, die die Website-Konfiguration des ausgewählten Buckets löscht. Der einzige Parameter, den Sie beim Abrufen der DeleteBucketWebsiteCommand-Methode weiterleiten müssen, ist der Name des ausgewählten Buckets.

// Import required AWS SDK clients and commands for Node.js. import { DeleteBucketWebsiteCommand } from "@aws-sdk/client-s3"; import { s3Client } from "./libs/s3Client.js"; // Helper function that creates an Amazon S3 service client module. // Create the parameters for calling export const bucketParams = { Bucket: "BUCKET_NAME" }; export const run = async () => { try { const data = await s3Client.send(new DeleteBucketWebsiteCommand(bucketParams)); return data; // For unit tests. console.log("Success", data); } catch (err) { console.log("Error", err); } }; run();

Geben Sie an der Eingabeaufforderung Folgendes ein.

node s3_deletebucketwebsite.js

Diesen Beispielcode finden Sie hier auf GitHub.