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.
HTML-Formulare (AWS Signatur (Version 2)
Themen
Wenn Sie mit Amazon S3 kommunizieren, verwenden Sie normalerweise die REST- oder SOAP-API zum Laden, Abrufen, Löschen und für andere Operationen. Mit POST laden die Benutzer die Daten direkt zu Amazon S3 über ihre Browser hoch, die nicht in der Lage sind, die SOAP-API zu verarbeiten oder eine REST-PUT-Anfrage zu erstellen.
Anmerkung
SOAP APIs für Amazon S3 sind für Neukunden nicht verfügbar und nähern sich am 31. August 2025 dem Ende des Lebenszyklus (EOL). Wir empfehlen, entweder die REST-API oder die AWS SDKs zu verwenden.
Um Benutzern zu erlauben, Inhalte über ihre Browser zu Amazon S3 hochzuladen, verwenden Sie HTML-Formulare. HTML-Formulare bestehen aus einer Formulardeklaration und Formularfeldern. Die Formulardeklaration enthält allgemeine Informationen zu der Anfrage. Die Formularfelder enthalten detaillierte Informationen zu der Anfragen sowie die Richtlinie, die verwendet wird, um die Anfrage zu authentifizieren und um sicherzustellen, dass sie den von Ihnen angegebenen Bedingungen entspricht.
Anmerkung
Daten und Grenzen des Formulars (ausschließlich der Inhalte der Datei) dürfen 20 KB nicht überschreiten.
Dieser Abschnitt erläutert die Verwendung von HTML-Formularen.
HTML-Formular-Kodierung
Das Formular und die Richtlinie müssen UTF-8 codiert sein. Sie können das Formular UTF-8 codieren, indem Sie es in der HTML-Überschrift oder als Anforderungsheader angeben.
Anmerkung
Die HTML-Formulardeklaration akzeptiert keine Abfrage-String-Authentifizierungsparameter.
Das Folgende ist ein Beispiel für die UTF-8 Codierung in der HTML-Überschrift:
<html> <head> ... <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> ... </head> <body>
Das Folgende ist ein Beispiel für die UTF-8 Kodierung in einem Anforderungsheader:
Content-Type: text/html; charset=UTF-8
HTML-Formulardeklaration
Die Formulardeklaration besteht aus drei Komponenten: der Aktion, der Methode und dem Umschließungstyp. Wenn einer dieser Werte nicht korrekt eingestellt ist, schlägt die Anforderung fehl.
Die Aktion gibt die URL an, die die Anforderung verarbeitet; dies muss die URL des Buckets sein. Wenn der Name Ihres Buckets beispielsweise awsexamplebucket1 lautet und die Region USA West (Nordkalifornien) ist, lautet die URL https://awsexamplebucket1.s3.us-west-1.amazonaws.com/.
Anmerkung
Der Schlüsselname wird in einem Formularfeld angegeben.
Die Methode muss POST sein.
Der Gehäusetyp (enctype) muss angegeben und sowohl für Datei-Uploads als auch für Textbereichs-Uploads auf multipart/form -data gesetzt werden. Weitere Informationen finden Sie unter RFC 1867
Beispiel
Das folgende Beispiel zeigt eine Formulardeklaration für den Bucket „awsexamplebucket1“.
<form action="https://awsexamplebucket1.s3.us-west-1.amazonaws.com/" method="post" enctype="multipart/form-data">
HTML-Formularfelder
Die folgende Tabelle beschreibt die Felder, die in einem HTML-Formular verwendet werden können.
Anmerkung
Die Variable ${filename} wird automatisch durch den Namen der Datei ersetzt, den der Benutzer bereitstellt, und der von allen Formularfeldern anerkannt wird. Wenn der Browser oder Client einen vollständigen oder teilweisen Pfad zu der Datei bereitstellt, wird nur der Text nach dem letzten Schrägstrich (/) oder umgekehrten Schrägstrich (\) verwendet. Beispielsweise wird „C:\Program Files\directory1\file.txt“ als „file.txt“ interpretiert. Wenn keine Datei bzw. kein Dateiname angegeben ist, wird die Variable durch eine leere Zeichenfolge ersetzt.
| Feldname | Beschreibung | Erforderlich |
|---|---|---|
AWSAccessKeyId |
Die AWS Zugriffsschlüssel-ID des Besitzers des Buckets, der einem anonymen Benutzer Zugriff auf eine Anfrage gewährt, die die Einschränkungen der Richtlinie erfüllt. Dies ist ein Pflichtfeld, wenn die Anforderung ein Richtliniendokument beinhaltet. |
Bedingt |
acl |
Eine Amazon-S3-Zugriffskontrollliste (ACL). Wenn eine ungültige Zugriffskontrollliste angegeben ist, wird ein Fehler generiert. Typ: Zeichenfolge Standard: privat Zulässige Werte: |
Nein |
Cache-Control, Content-Type, Content-Disposition,
Content-Encoding, Expires |
REST-specific Überschriften. Weitere Informationen finden Sie unter PUT Object. |
Nein |
key |
Der Name des hochgeladenen Schlüssels. verwenden Sie die Variable $(filename), um den von dem Benutzer angegebenen Dateinamen zu verwenden. Wenn beispielsweise der Benutzer Betty die Datei lolcatz.jpg hochlädt und Sie/user/betty/$ {filename} angeben, wird die Datei als//lolcatz.jpg gespeichert. user/betty Weitere Informationen finden Sie unter Arbeiten mit Objektmetadaten. |
Ja |
policy |
Die Sicherheitsrichtlinie, die angibt, was in der Anforderung zulässig ist. Anforderungen ohne Sicherheitsrichtlinie gelten als anonym und sind nur auf öffentlich zugänglichen Buckets erfolgreich. |
Nein |
success_action_redirect, redirect |
Die URL, zu der der Client nach einem erfolgreichen Upload umgeleitet wird. Amazon S3 hängt die Bucket-, Schlüssel- und Etag-Werte als Abfragezeichenfolgenparameter an die URL an. Wenn success_action_redirect nicht angegeben ist, gibt Amazon S3 den leeren Dokumententyp zurück, der im Feld success_action_status angegeben ist. Wenn Amazon S3 die URL nicht interpretieren kann, wird das Feld ignoriert. Wenn der Upload fehlschlägt, zeigt Amazon S3 einen Fehler an und leitet den Benutzer nicht zu einer URL um. Weitere Informationen finden Sie unter Umleitung. AnmerkungDer Name des Umleitungsfeldes ist veraltet, und das Feld wird künftig nicht mehr unterstützt. |
Nein |
success_action_status |
Der an den Client bei einem erfolgreichen Upload ausgegebene Statuscode, wenn success_action_redirect nicht angegeben ist. Gültige Werte sind 200, 201 und 204 (Standard). Wenn der Wert auf 200 oder 204 gesetzt ist, gibt Amazon S3 ein leeres Dokument mit dem Statuscode 200 oder 204 aus. Wenn der Wert auf 201 gesetzt ist, gibt Amazon S3 ein XML-Dokument mit dem Statuscode 201 aus. Informationen zum Inhalt des XML-Dokuments finden Sie unter POST Object. Wenn der Wert nicht oder auf einen falschen Wert gesetzt ist, gibt Amazon S3 ein leeres Dokument mit dem Statuscode 204 aus. AnmerkungEinige Versionen von Adobe Flash Player können HTTP-Antworten ohne Text nicht korrekt bearbeiten. Zur Unterstützung von Uploads über Adobe Flash empfehlen wir, |
Nein |
signature |
Die HMAC-Signatur, die mithilfe des geheimen Zugriffsschlüssels erstellt wurde, der dem angegebenen entspricht. AWSAccessKeyId Dies ist ein Pflichtfeld, wenn die Anforderung ein Richtliniendokument beinhaltet. Weitere Informationen finden Sie unter Identitäts- und Zugriffsmanagement für Amazon S3. |
Bedingt |
x-amz-security-token |
Ein Sicherheitstoken, das von Sitzungsanmeldeinformationen verwendet wird Wenn die Anfrage Amazon DevPay verwendet, sind zwei Wenn die Anforderung Sitzungsanmeldedaten verwendet, ist ein |
Nein |
| Andere Feldnamen mit dem Präfix x-amz-meta- |
User-specified Metadaten. Amazon S3 validiert oder verwendet diese Daten nicht. Weitere Informationen finden Sie unter PUT Object. |
Nein |
| file |
Datei oder Textinhalt. Die Datei oder der Inhalt muss das letzte Feld des Formulars sein. Alle Felder darunter werden ignoriert. Sie können nicht mehr als eine Datei zur gleichen Zeit hochladen. |
Ja |
Richtlinienerstellung
Die Richtlinie ist ein UTF-8 Base64-encoded JSON-Dokument, das die Bedingungen festlegt, die die Anforderung erfüllen muss, und das zur Authentifizierung des Inhalts verwendet wird. Je nach dem, wie Sie Ihre Richtliniendokumente gestalten, können Sie sie pro Upload, pro Benutzer, für alle Uploads oder nach anderen Kriterien, die Ihren Anforderungen entsprechen, verwenden.
Anmerkung
Obwohl das Richtliniendokument optional ist, empfehlen nachdrücklich, es zu verwenden, anstatt einen Bucket öffentlich beschreibbar zu machen.
Nachstehend finden Sie ein Beispiel für ein Richtliniendokument:
{ "expiration": "2007-12-01T12:00:00.000Z", "conditions": [ {"acl": "public-read" }, {"bucket": "awsexamplebucket1" }, ["starts-with", "$key", "user/eric/"], ] }
Das Richtliniendokument enthält den Ablauf und die Bedingungen.
Ablauf
Das Ablaufelement gibt das Ablaufdatum der Richtlinie im Datumsformat nach ISO 8601 UTC an. Beispielsweise gibt „2007-12-01T12:00:00.000Z" an, dass die Richtlinie am 01.12.2007 nach Mitternacht UTC nicht gültig ist. Die Angabe des Ablaufs ist in einer Richtlinie erforderlich.
Bedingungen
Die Bedingungen in dem Richtliniendokument validieren den Inhalt des hochgeladenen Objekts. Jedes Formularfeld, das Sie im Formular angeben (mit Ausnahme von Signatur-AWSAccessKeyId, Datei-, Richtlinien- und Feldnamen mit dem Präfix x-ignore-), muss in der Liste der Bedingungen enthalten sein.
Anmerkung
Wenn Sie mehrere Felder mit dem gleichen Namen haben, müssen die Werte durch Kommata abgeteilt sein. Zum Beispiel: Wenn Sie zwei Felder mit der Bezeichnung „x-amz-meta-tag“ haben und das erste den Wert „Ninja“ und das zweite den Wert „Stallman“ hat, setzen Sie das Richtliniendokument auf Ninja,Stallman.
Alle Variablen in dem Formular werden vor der Validierung der Richtlinie erweitert. Daher müssen alle Bedingungsabgleiche anhand der erweiterten Felder vorgenommen werden. Zum Beispiel: Wenn Sie das Schlüsselfeld auf user/betty/${filename} setzen, ist Ihre Richtlinie möglicherweise [
"starts-with", "$key", "user/betty/" ]. Geben Sie nicht ei [
"starts-with", "$key", "user/betty/${filename}" ]. Weitere Informationen finden Sie unter Übereinstimmung von Bedingungen.
Die folgende Tabelle beschreibt die Bedingungen für Richtliniendokumente.
| Elementname | Beschreibung |
|---|---|
| acl |
Gibt die Bedingungen an, die die ACL erfüllen muss. Unterstützt exakte Übereinstimmung und |
| content-length-range |
Gibt die erlaubte Mindest- und Höchstgröße des hochgeladenen Inhalts an. Unterstützt den Bereichsabgleich. |
| Cache-Control,, Content-Type, Content-DispositionContent-Encoding, Läuft ab |
REST-specific Header. Unterstützt exakte Übereinstimmung und |
| Schlüssel |
Der Name des hochgeladenen Schlüssels. Unterstützt exakte Übereinstimmung und |
| success_action_redirect, redirect |
Die URL, zu der der Client nach einem erfolgreichen Upload umgeleitet wird. Unterstützt exakte Übereinstimmung und |
| success_action_status |
Der an den Client bei einem erfolgreichen Upload ausgegebene Statuscode, wenn success_action_redirect nicht angegeben ist. Unterstützt exakte Übereinstimmung. |
| x-amz-security-token |
DevPay Amazon-Sicherheitstoken. Für jede Anfrage, die Amazon verwendet, DevPay sind zwei |
| Andere Feldnamen mit dem Präfix x-amz-meta- |
User-specified Metadaten. Unterstützt exakte Übereinstimmung und |
Anmerkung
Wenn Ihr Toolkit weitere Felder hinzufügt (beispielsweise fügt Flash den Dateinamen hinzu), müssen Sie diese dem Richtliniendokument hinzufügen. Wenn Sie diese Funktionalität steuern können, setzen Sie x-ignore- vor das Feld, sodass Amazon S3 die Funktion ignoriert und künftige Versionen davon unbeeinflusst lässt.
Übereinstimmung von Bedingungen
Die folgende Tabelle beschreibt die Übereinstimmungstypen von Bedingungen. Obwohl Sie für jedes Formularfeld, das Sie in dem Formular angeben, eine Bedingung angeben müssen, können Sie auch komplexere Übereinstimmungskriterien erstellen, indem Sie für ein Formularfeld mehrere Bedingungen angeben.
| Bedingung | Beschreibung |
|---|---|
|
Genaue Übereinstimmung |
Hierbei müssen die Felder spezifische Werte enthalten. In diesem Beispiel ist angegeben, dass die ACL auf „public-read“ gesetzt werden muss:
Dieses Beispiel zeigt eine alternative Möglichkeit, um anzuzeigen, dass die ACL auf „public-read“ gesetzt werden muss:
|
|
Beginnt mit |
Verwenden Sie diese Bedingung, wenn der Wert mit einem bestimmten Wert beginnen muss. Dieses Beispiel gibt an, dass der Schlüssel beginnen muss mit user/betty:
|
|
Übereinstimmung mit beliebigem Inhalt |
Verwenden Sie „starts-with“ mit einem leeren Wert, um die Richtlinie so zu konfigurieren, dass in einem Feld beliebiger Inhalt zulässig ist. Dieses Beispiel lässt jeden Wert für success_action_redirect zu:
|
|
Angabe von Bereichen |
Wenn Felder Bereiche akzeptieren, trennen Sie die Ober- und die Untergrenze durch ein Komma voneinander ab. In diesem Beispiel sind Dateigrößen von 1 bis 10 Megabyte erlaubt:
|
Escape-Zeichen
Die folgende Tabelle beschreibt Zeichen, für die in einem Richtliniendokument ein Escape-Zeichen verwendet werden muss.
| Escape-Sequenz | Beschreibung |
|---|---|
|
\\ |
Umgekehrter Schrägstrich |
|
\$ |
Dollarzeichen |
|
\b |
Backspace |
|
\f |
Seitenvorschub |
|
\n |
Neue Zeile |
|
\r |
Zeilenumschaltung |
|
\t |
Horizontaler Tabulator |
|
\V |
Vertikaler Tabulator |
|
\ u |
Alle Unicode-Zeichen |
Erstellen einer Signatur
| Schritt | Beschreibung |
|---|---|
| 1 |
Codieren Sie die Richtlinie mit UTF-8. |
| 2 |
Codieren Sie diese UTF-8 Bytes mithilfe von Base64. |
| 3 |
Signieren Sie die Richtlinie mit Ihrem geheimen Zugriffsschlüssel, indem Sie HMAC verwenden. SHA-1 |
| 4 |
Codieren Sie die SHA-1 Signatur mithilfe von Base64. |
Allgemeine Informationen zur Authentifizierung finden Sie unter Identitäts- und Zugriffsmanagement für Amazon S3.
Umleitung
In diesem Abschnitt wird beschrieben, wie Sie mit Umleitungen umgehen.
Allgemeine Umleitung
Beim Abschluss der POST-Anforderung wird der Benutzer zu dem Ort umgeleitet, den Sie im Feld success_action_redirect angeben. Wenn Amazon S3 die URL nicht interpretieren kann, wird das Feld success_action_redirect ignoriert.
Wenn success_action_redirect nicht angegeben ist, gibt Amazon S3 den leeren Dokumententyp zurück, der im Feld success_action_status angegeben ist.
Wenn die POST-Anfrage fehlschlägt, zeigt Amazon S3 einen Fehler an und führt keine Umleitung durch.
Pre-upload Umleitung
Wenn Ihr Bucket mit < CreateBucketConfiguration > erstellt wurde, benötigen Ihre Endbenutzer möglicherweise eine Weiterleitung. Wenn dies der Fall ist, kann es sein, das einige Browser mit der Umleitung nicht korrekt umgehen. Dies kommt relativ selten vor, meistens dann, wenn der Bucket gerade eben erstellt wurde.