Konfigurieren von Amazon S3 S3-Buckets - AWS SDK for JavaScript

Helfen Sie uns, dasAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation durch Feedback unter Verwendung derFeedbackLink oder erstellen Sie ein Problem oder ziehen Sie eine Anfrage anGitHubaus.

DieAWS SDK for JavaScriptReferenzhandbuch zur V3-API-Referenzbeschreibt ausführlich alle API-Operationen für dieAWS 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.

Konfigurieren von Amazon S3 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 S3-Bucket mithilfe dieser Methoden der Amazon S3 S3--Client-Klasse zu konfigurieren:

Weitere Informationen zur Verwendung der CORS-Konfiguration mit einem Amazon S3 S3-Bucket finden Sie unterCross-Origin Resource Sharing (CORS)imAmazon 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 Downloads.aus.

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

Abrufen einer Bucket CORS-Konfiguration

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

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

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 einesS3Client-Serviceobjekt.

Der einzige Parameter, den Sie beim Abrufen der GetBucketCorsCommand-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 alsCORSRulesEigentum derdataParameter, der an die Callback-Funktion weitergeleitet wird.

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

// Import required AWS SDK clients and commands for Node.js import { GetBucketCorsCommand } from "@aws-sdk/client-s3"; import { s3Client } from "./libs/s3Client.js"; // Helper function that creates 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 GetBucketCorsCommand(bucketParams)); console.log("Success", JSON.stringify(data.CORSRules)); return data; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Geben Sie an der Eingabeaufforderung Folgendes bei der Eingabeaufforderung ein.

node s3_getcors.js

Diesen Beispielcode finden Sie hier auf GitHub.

Einrichten einer Bucket CORS-Konfiguration

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

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

Erstellen Sie als Nächstes ein JSON-Objekt, um die Werte für die CORS-Konfiguration zu umfassen, wie es für die PutBucketCorsCommand-Methode des 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.

// Import required AWS-SDK clients and commands for Node.js import { PutBucketCorsCommand } from "@aws-sdk/client-s3"; import { s3Client } from "./libs/s3Client.js"; // Helper function that creates Amazon S3 service client module. // Set params // Create initial parameters JSON for putBucketCors const thisConfig = { AllowedHeaders: ["Authorization"], AllowedMethods: [], AllowedOrigins: ["*"], ExposeHeaders: [], MaxAgeSeconds: 3000, }; // Assemble the list of allowed methods based on command line parameters const 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 const corsRules = new Array(thisConfig); // Create CORS params export const corsParams = { Bucket: "BUCKET_NAME", CORSConfiguration: { CORSRules: corsRules }, }; export async function run() { try { const data = await s3Client.send(new PutBucketCorsCommand(corsParams)); console.log("Success", data); return data; // For unit tests. } catch (err) { console.log("Error", err); } } run();

Um das Beispiel auszuführen, geben Sie an der Eingabeaufforderung Folgendes ein, einschließlich einer oder mehrerer HTTP-Methoden, wie dargestellt, ein.

node s3_setcors.js

Diesen Beispielcode finden Sie hier auf GitHub.