Lädt Objekte mithilfe von HTML-Formularen hoch. Das hochgeladene Objekt ersetzt alle vorhandenen Objekte mit demselben Namen. Tipps zum Hochladen in Cloud Storage finden Sie in den Best Practices.
Weitere Informationen zu POST
-Objektanfragen mit dem Legacy-Signaturprozess finden Sie unter POST-Objekt mit dem V2-Signaturprozess.
Abfragestringparameter
Die Anfrage enthält keine Abfragestringparameter.
Formularfelder
Feld | Beschreibung | Erforderlich |
---|---|---|
acl |
Die vordefinierte ACL, die auf das hochgeladene Objekt angewendet werden soll. Wenn Sie dieses Feld nicht angeben, wird die ACL default des Buckets angewendet. |
Nein |
bucket |
Der Name des Buckets, in den Sie die Datei hochladen möchten. Wenn Sie dieses Feld angeben, muss es mit dem Bucket-Namen übereinstimmen, den Sie im Attribut action angegeben haben. |
Nein |
Cache-Control |
Die Cache-Steuerung für das Objekt. Sie können die Cache-Steuerung nur für Objekte festlegen, die für alle Nutzer zugänglich sind. Die ACL eines Objekts muss beispielsweise public-read oder public-read-write sein, damit die Cachesteuerung festgelegt werden kann. |
Nein |
Content-Disposition |
Gibt an, wie die Objektdaten übertragen werden sollen. Ein Content-Disposition -Wert von inline bedeutet beispielsweise, dass das Objekt sofort angezeigt werden soll. |
Nein |
Content-Encoding |
Der Komprimierungsalgorithmus für das Objekt, z. B. gzip . |
Nein |
Content-Length |
Die Größe der hochgeladenen Datei in Byte. | Nein |
Content-Type |
Der MIME-Typ der Datei, die Sie über das Formular hochladen. Wenn Sie keinen Inhaltstyp angeben, verwendet das Cloud Storage-System beim Bereitstellen des Inhalts standardmäßig application/octet-stream . |
Nein |
Expires |
Ein ISO8601-Zeitstempel, der das Datum und die Uhrzeit vor einem Objekt angibt, das vom Browser als veraltet gilt. | Nein |
file |
Die Datei, die Sie hochladen. Es muss das letzte Feld im Formular sein. Sie können nur ein Objekt pro Anfrage hochladen. | Ja |
key |
Der Name des Objekts, das Sie hochladen. Sie können auch die Variable ${filename} verwenden, wenn ein Nutzer einen Dateinamen bereitstellt. | Ja |
policy |
Die Sicherheitsrichtlinie, die beschreibt, was im Formular hochgeladen werden darf und nicht. Das Richtliniendokument muss Base64-codiert sein. Weitere Informationen finden Sie in den Richtliniendokumenten. *Wenn Sie keine Sicherheitsrichtlinie bereitstellen, werden Anfragen als anonym betrachtet und funktionieren nur mit Buckets, denen anonymen Nutzern die Berechtigung |
Nein* |
success_action_redirect |
Eine URL, zu der Nutzer nach einem erfolgreichen Upload weitergeleitet werden. Wenn Sie keine URL angeben, antwortet Cloud Storage mit dem Statuscode, den Sie in success_action_status angegeben haben. |
Nein |
success_action_status |
Der Statuscode, auf den Cloud Storage reagieren soll, wenn ein Upload erfolgreich war Der Standardwert ist 204, aber Sie können diesen Wert auf 200 oder 201 ändern. Wenn Sie 200 oder 204 auswählen, gibt Cloud Storage ein leeres Dokument mit diesen Statuscodes zurück. Wenn Sie 201 auswählen, gibt Cloud Storage ein XML-Dokument mit den in Antworttextelementen beschriebenen Elementen zurück. Hinweis: Der Adobe Flash Player verarbeitet möglicherweise keine Antworten mit einem leeren Dokumenttext. Verwenden Sie in diesem Fall den Statuscode 201. | Nein |
x-goog-algorithm |
Der Signaturalgorithmus, mit dem die mit Ihrem Richtliniendokument verknüpfte Signatur erstellt wurde. Mögliche Werte sind GOOG4-HMAC-SHA256 und GOOG4-RSA-SHA256 |
Nur wenn Sie ein policy angeben |
x-goog-credential |
Die Anmeldedaten, die zum Erstellen der mit Ihrem Richtliniendokument verknüpften Signatur verwendet werden. x-goog-credential hat das Format AccessKeyId/CredentialScope . Dabei gilt:
|
Nur wenn Sie ein policy angeben |
x-goog-custom-time |
Ein benutzerdefiniertes Datum und eine Uhrzeit im RFC 3339-Format YYYY-MM-DD'T'HH:MM:SS.SS'Z' . |
Nein |
x-goog-date |
Das aktuelle Datum im ISO 8601-Basisformat YYYYMMDD'T'HHMMSS'Z' . |
Nur wenn Sie ein policy angeben |
x-goog-signature |
Die mit Ihrem Richtliniendokument verknüpfte Signatur. | Nur wenn Sie ein policy angeben |
x-goog-meta-* |
Ein Feld für benutzerdefinierte Metadaten. Sie können damit zusätzliche Metadaten angeben, die nicht von den anderen Formularfeldern bereitgestellt werden. Zum Beispiel sind x-goog-meta-reviewer: jane oder x-goog-meta-project-manager: john benutzerdefinierte Metadaten. |
Nein |
Antworttextelemente
Die folgenden Antworttextelemente werden nur in einem XML-Dokument zurückgegeben, wenn Sie success_action_status
auf 201 setzen.
Element | Beschreibung |
---|---|
Bucket |
Bucket, in dem das Objekt gespeichert wurde. |
ETag |
HTTP 1.1-Entitäts-Tag für das Objekt. |
Key |
Der Name des Objekts. |
Location |
Der URI für das Objekt. |
Verwendung und Beispiele
Das Formular muss UTF-8-codiert sein. Sie können die Formularcodierung im HTML-Tag head
oder über den Anfrageheader Content-Type
angeben.
In der Datei form
müssen die folgenden drei Elemente angegeben sein:
Eine Aktion.
Das Attribut
action
gibt einen API-Anfrageendpunkt an. Gültige Endpunkte sindhttps://BUCKET_NAME.storage.googleapis.com
,https://storage.googleapis.com/BUCKET_NAME
undCNAME
Weiterleitungen.Eine Methode.
Das Attribut
method
gibt die Methode an, die du zum Senden des Formulars verwendest. Sie muss den Wertpost
enthalten.Ein Gehäusetyp.
Das Attribut
enctype
gibt den verwendeten Gehäusetyp an und muss immermultipart/form-data
sein.
Hier sehen Sie ein Beispiel für ein HTML-Formular mit einem Richtliniendokument:
HTML
<form action="https://storage.googleapis.com/travel-maps" method="post" enctype="multipart/form-data"> <input type="text" name="key" value="test-object"> <input type="hidden" name="Content-Type" value="image/jpeg"> <input type="hidden" name="success_action_redirect" value="https://www.example.com/success_notification.html"> <input type="hidden" name="policy" value="eyJjb25kaXRpb25zIjpbeyJidWNrZXQiOiJ0cmF2ZWwtbWFwcyJ9LHsiY29udGVudC10eXBlIjoiaW1hZ2UvanBlZyJ9LHsic3VjY2Vzc19hY3Rpb25fcmVkaXJlY3QiOiJodHRwOi8vd3d3LmV4YW1wbGUuY29tL3N1Y2Nlc3Nfbm90aWZpY2F0aW9uLmh0bWwifSx7ImtleSI6InRlc3Qtb2JqZWN0In0seyJ4LWdvb2ctZGF0ZSI6IjIwMjAwMTIzVDA0MzUzMFoifSx7IngtZ29vZy1jcmVkZW50aWFsIjoiZXhhbXBsZV9hY2NvdW50QGV4YW1wbGVfcHJvamVjdC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbS8yMDE5MTEwMi9hdXRvL3N0b3JhZ2UvZ29vZzRfcmVxdWVzdCJ9LHsieC1nb29nLWFsZ29yaXRobSI6IkdPT0c0LVJTQS1TSEEyNTYifV0sImV4cGlyYXRpb24iOiIyMDIwLTAxLTIzVDA0OjM1OjQwWiJ9"> <input type="hidden" name="x-goog-algorithm" value="GOOG4-RSA-SHA256"> <input type="hidden" name="x-goog-credential" value="example_account@example_project.iam.gserviceaccount.com/20191102/auto/storage/goog4_request"> <input type="hidden" name="x-goog-date" value="20191102T043530Z"> <input type="hidden" name="x-goog-signature" value="58bc39b8f604ee1f18171fee4828ef8967f3d2721676570e115d68c2f133820cbb833976f18955516b2b7d0c3d9660fea613a2ad90c240bd02c1eefa4a55e9038ce74dcfdd34e278ea0436e261131a36fa4e922f0a077ca1c9842f654928aac3ca7f9341075f9db275d8286b5ef13e7f91b4837e77b2a6dbea83f86b90f848331053d8a6b1fbc26787992e7fb819a2005bae9b3026b9c7d1158e88e4a2018f13757083c7873241d2dfe6ea46a17cd6f3d090f3e0da44ccfbd6bc425124de1bea744a32f3ab175672a991ef274cd83550eca57ea591b85fa9799098a38ec552dc3ec679c431491444820624f5c4ba0c8cf87d60af89899afce2a90325c6966dcf"> <input name="file" type="file"> <input type="submit" value="Upload"> </form>
C++
C++
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.
C#
C#
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C# API.
Java
Java
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.
Go
Go
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Go API.
Node.js
Node.js
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Node.js API.
PHP
PHP
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage PHP API.
Python
Python
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Python API.
Ruby
Ruby
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Ruby API.
Als Best Practice sollten Sie den Header Expect: 100-continue
mit POST-Anfragen verwenden. So können Sie prüfen, ob der Server die Anfrage verarbeitet, bevor Sie das Objekt senden. Wenn Sie den Statuscode 100 Continue
erhalten, fahren Sie mit der Anfrage fort. Wenn Sie den Statuscode 417 Expectation Failed
erhalten, sollten Sie das Objekt nicht senden.