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.
Beispiel: Browser-Based Upload mit HTTP POST (Mit AWS Signatur (Version 4)
Dieser Abschnitt zeigt ein Beispiel für die Verwendung einer HTTP-POST-Anfrage, um Inhalte direkt auf Amazon S3 hochzuladen.
Weitere Informationen zu Signature Version 4 finden Sie unter Signature Version 4 Signing Process.
Hochladen einer Datei auf Amazon S3 mithilfe von HTTP POST
Dieses Beispiel enthält ein Beispiel für eine POST-Richtlinie und ein Formular, das Sie zum Hochladen einer Datei verwenden können. In diesem Thema werden die Beispielrichtlinie und fiktive Anmeldeinformationen verwendet, um Ihnen den Arbeitsablauf und die daraus resultierende Signatur und den Richtlinien-Hash zu zeigen. Sie können diese Daten als Testsuite verwenden, um Ihren Signaturberechnungscode zu verifizieren.
Das Beispiel verwendet die folgenden Beispiel-Anmeldeinformationen für die Signaturberechnungen. Sie können diese Anmeldeinformationen verwenden, um Ihren Signaturberechnungscode zu überprüfen. Sie müssen diese dann jedoch durch Ihre eigenen Anmeldeinformationen ersetzen, wenn Sie Anfragen an senden AWS.
| Parameter | Wert |
|---|---|
AWSAccessKeyId |
AKIAIOSFODNN7EXAMPLE |
AWSSecretAccessKey |
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY |
Beispiel für eine Richtlinie und ein Formular
Die folgende POST-Richtlinie unterstützt Uploads auf Amazon S3 unter bestimmten Bedingungen.
{ "expiration": "2015-12-30T12:00:00.000Z", "conditions": [ {"bucket": "sigv4examplebucket"}, ["starts-with", "$key", "user/user1/"], {"acl": "public-read"}, {"success_action_redirect": "http://sigv4examplebucket.s3.amazonaws.com/successful_upload.html"}, ["starts-with", "$Content-Type", "image/"], {"x-amz-meta-uuid": "14365123651274"}, {"x-amz-server-side-encryption": "AES256"}, ["starts-with", "$x-amz-meta-tag", ""], {"x-amz-credential": "AKIAIOSFODNN7EXAMPLE/20151229/us-east-1/s3/aws4_request"}, {"x-amz-algorithm": "AWS4-HMAC-SHA256"}, {"x-amz-date": "20151229T000000Z" } ] }
Diese POST-Richtlinie legt die folgenden Bedingungen für die Anfrage fest:
-
Der Upload muss am 30. Dezember 2015 vor 12:00 Uhr UTC erfolgen.
-
Der Inhalt kann nur auf den hochgeladen werden
sigv4examplebucket. Der Bucket muss sich in der Region befinden, die Sie im Bereich der Anmeldeinformationen (x-amz-credentialFormularparameter) angegeben haben, da die von Ihnen angegebene Signatur nur innerhalb dieses Bereichs gültig ist. -
Sie können einen beliebigen Schlüsselnamen angeben, der mit
user/user1beginnt. Beispiel,user/user1/MyPhoto.jpg. -
Die ACL muss auf gesetzt sein
public-read. -
Wenn der Upload erfolgreich ist, wird der Browser des Benutzers zu
http://sigv4examplebucket.s3.amazonaws.com/successful_upload.htmlweitergeleitet. -
Das Objekt muss eine Bilddatei sein.
-
Das
x-amz-meta-uuidTag muss auf gesetzt sein14365123651274. -
Die
x-amz-meta-tagkann einen beliebigen Wert enthalten.
Das Folgende ist eine Base64-encoded Version dieser POST-Richtlinie. Sie verwenden diesen Wert als Ihre StringToSign Signaturberechnung.
eyAiZXhwaXJhdGlvbiI6ICIyMDE1LTEyLTMwVDEyOjAwOjAwLjAwMFoiLA0KICAiY29uZGl0aW9ucyI6IFsNCiAgICB7ImJ1Y2tldCI6ICJzaWd2NGV4YW1wbGVidWNrZXQifSwNCiAgICBbInN0YXJ0cy13aXRoIiwgIiRrZXkiLCAidXNlci91c2VyMS8iXSwNCiAgICB7ImFjbCI6ICJwdWJsaWMtcmVhZCJ9LA0KICAgIHsic3VjY2Vzc19hY3Rpb25fcmVkaXJlY3QiOiAiaHR0cDovL3NpZ3Y0ZXhhbXBsZWJ1Y2tldC5zMy5hbWF6b25hd3MuY29tL3N1Y2Nlc3NmdWxfdXBsb2FkLmh0bWwifSwNCiAgICBbInN0YXJ0cy13aXRoIiwgIiRDb250ZW50LVR5cGUiLCAiaW1hZ2UvIl0sDQogICAgeyJ4LWFtei1tZXRhLXV1aWQiOiAiMTQzNjUxMjM2NTEyNzQifSwNCiAgICB7IngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24iOiAiQUVTMjU2In0sDQogICAgWyJzdGFydHMtd2l0aCIsICIkeC1hbXotbWV0YS10YWciLCAiIl0sDQoNCiAgICB7IngtYW16LWNyZWRlbnRpYWwiOiAiQUtJQUlPU0ZPRE5ON0VYQU1QTEUvMjAxNTEyMjkvdXMtZWFzdC0xL3MzL2F3czRfcmVxdWVzdCJ9LA0KICAgIHsieC1hbXotYWxnb3JpdGhtIjogIkFXUzQtSE1BQy1TSEEyNTYifSwNCiAgICB7IngtYW16LWRhdGUiOiAiMjAxNTEyMjlUMDAwMDAwWiIgfQ0KICBdDQp9
Wenn Sie copy/paste die vorstehende Richtlinie verwenden, sollte sie Zeilenumbrüche und neue Zeilen enthalten, damit Ihr berechneter Hash diesem Wert entspricht (d. h. ASCII-Text mit CRLF-Zeilenabschlüssen).
Bei Verwendung von Beispiel-Anmeldeinformationen zum Erstellen einer Signatur lautet der Signaturwert wie folgt (bei der Berechnung der Signatur entspricht das Datum dem x-amz-date in der Richtlinie (20151229)):
8afdbf4008c03f22c2cd3cdb72e4afbb1f6a588f3255ac628749a66d7f09699e
Das folgende Beispielformular gibt die vorhergehende POST-Richtlinie an und unterstützt eine POST-Anforderung an die. sigv4examplebucket Copy/paste den Inhalt in einem Texteditor und speichern Sie ihn als exampleform.html. Anschließend können Sie mithilfe der Datei exampleform.html Bilddateien in den jeweiligen Bucket hochladen. Ihre Anfrage ist erfolgreich, wenn die von Ihnen angegebene Signatur mit der von Amazon S3 berechneten Signatur übereinstimmt.
Anmerkung
Sie müssen den Bucket-Namen, die Daten, die Anmeldeinformationen, die Richtlinie und die Signatur mit gültigen Werten aktualisieren, damit dies erfolgreich auf S3 hochgeladen werden kann.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <form action="http://sigv4examplebucket.s3.amazonaws.com/" method="post" enctype="multipart/form-data"> Key to upload: <input type="input" name="key" value="user/user1/${filename}" /><br /> <input type="hidden" name="acl" value="public-read" /> <input type="hidden" name="success_action_redirect" value="http://sigv4examplebucket.s3.amazonaws.com/successful_upload.html" /> Content-Type: <input type="input" name="Content-Type" value="image/jpeg" /><br /> <input type="hidden" name="x-amz-meta-uuid" value="14365123651274" /> <input type="hidden" name="x-amz-server-side-encryption" value="AES256" /> <input type="text" name="X-Amz-Credential" value="AKIAIOSFODNN7EXAMPLE/20151229/us-east-1/s3/aws4_request" /> <input type="text" name="X-Amz-Algorithm" value="AWS4-HMAC-SHA256" /> <input type="text" name="X-Amz-Date" value="20151229T000000Z" /> Tags for File: <input type="input" name="x-amz-meta-tag" value="" /><br /> <input type="hidden" name="Policy" value='<Base64-encoded policy string>' /> <input type="hidden" name="X-Amz-Signature" value="<signature-value>" /> File: <input type="file" name="file" /> <br /> <!-- The elements after this will be ignored --> <input type="submit" name="submit" value="Upload to Amazon S3" /> </form> </html>
Bei den Post-Parametern wird nicht zwischen Groß- und Kleinschreibung unterschieden. Sie können beispielsweise x-amz-signature oder X-Amz-Signature angeben.