Tutorial: Erstellen einer REST-API als Amazon S3-Proxy in API Gateway
Dieser Abschnitt zeigt anhand eines Beispiels die Verwendung einer REST-API in API Gateway als Amazon S3-Proxy und beschreibt das Erstellen und Konfigurieren einer REST-API zur Bereitstellung der folgenden Amazon S3-Operationen:
-
Bereitstellung von GET bei der Stammressource der API, um alle Amazon S3-Buckets eines Aufrufers aufzulisten.
-
Bereitstellung von GET bei einer Folder-Ressource, um eine Liste aller Objekte in einem Amazon S3-Bucket anzuzeigen.
-
Bereitstellung von PUT bei einer Folder-Ressource, um einen Bucket zu Amazon S3 hinzuzufügen.
-
Bereitstellung von DELETE bei einer Folder-Ressource, um einen Bucket aus Amazon S3 zu entfernen.
-
Bereitstellung von GET bei einer Folder/Item-Ressource, um ein Objekt von einem Amazon S3-Bucket anzuzeigen oder herunterzuladen.
-
Bereitstellung von PUT bei einer Folder/Item-Ressource, um ein Objekt zu einem Amazon S3-Bucket hochzuladen.
-
Bereitstellung von HEAD bei einer Folder/Item-Ressource, um Objekt-Metadaten in einem Amazon S3-Bucket abzurufen.
-
Bereitstellung von DELETE bei einer Folder/Item-Ressource, um ein Objekt aus einem Amazon S3-Bucket zu entfernen.
Um Ihre API Gateway-API in Amazon S3 zu integrieren, müssen Sie eine Region auswählen, in der sowohl die API Gateway- als auch die Amazon S3-Services verfügbar sind. Informationen zur Verfügbarkeit der Regionen finden Sie unter Amazon API Gateway-Endpunkte und -Kontingente.
Vielleicht wollen Sie die Beispiel-API als Amazon S3-Proxy importieren, wie in gezeig OpenAPI-Definitionen der Beispiel-API als Amazon-S3-Proxy. Anweisung zum Importieren einer API mithilfe der OpenAPI-Definition finden Sie unter Konfigurieren einer REST-API mit OpenAPI.
Sie benötigen ein AWS-Konto, um die API über die API-Gateway-Konsole zu erstellen. Führen Sie die Schritte unter au Voraussetzungen für die ersten Schritte mit API Gateway.
Themen
- Einrichten von IAM-Berechtigungen für die API, um Amazon S3-Aktionen aufzurufen
- Erstellen von API-Ressourcen zum Darstellen von Amazon S3-Ressourcen
- Bereitstellen einer API-Methode zur Auflistung der Amazon S3-Buckets des Aufrufers
- Bereitstellen von API-Methoden, um auf einen Amazon S3-Bucket zuzugreifen
- Bereitstellen von API-Methoden für den Zugriff auf ein Amazon S3-Objekt in einem Bucket
- Aufrufen der API mit einem REST-API-Client
- OpenAPI-Definitionen der Beispiel-API als Amazon-S3-Proxy
Einrichten von IAM-Berechtigungen für die API, um Amazon S3-Aktionen aufzurufen
Damit die API erforderliche Amazon S3-Aktionen aufrufen kann, müssen Sie über geeignete IAM-Richtlinien verfügen, die einer IAM-Rolle zugeordnet sind. Im nächsten Abschnitt wird beschrieben, wie Sie die erforderliche IAM-Rolle sowie die -Richtlinien überprüfen und ggf. erstellen.
Zum Anzeigen oder Auflisten von Amazon S3-Buckets und Objekten über die API können Sie die in IAM bereitgestellte AmazonS3ReadOnlyAccess-Richtlinie in der IAM-Rolle verwenden. Der ARN dieser Richtlinie ist arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
, was wie folgt gezeigt wird:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "*" } ] }
Dieses Richtliniendokument gibt an, dass alle Get*
- und List*
-Aktionen von Amazon S3 von jeder beliebigen Amazon S3-Ressource aufgerufen werden können.
Damit Ihre API Amazon S3-Buckets und Objekte aktualisieren kann, können Sie für jede Amazon S3-Put*
-Aktion eine benutzerdefinierte Richtlinie verwenden, wie unten gezeigt:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:Put*", "Resource": "*" } ] }
Damit Ihre API mit Amazon S3-Get*
-, List*
- und Put*
-Aktionen funktioniert, können Sie die obigen Read-only- und Put-only-Richtlinien zu der IAM-Rolle hinzufügen.
Damit Ihre API Amazon S3-Post*
-Aktionen aufrufen kann, müssen Sie eine Zugriffserlaubnis-Richtlinie für die s3:Post*
-Aktionen in der IAM-Rolle einrichten. Eine vollständige Liste der Amazon S3-Aktionen finden Sie unter Angeben von Amazon S3-Berechtigungen in einer Richtlinie.
Damit Ihre API Buckets und Objekte in Amazon S3 erstellen, anzeigen, aktualisieren und löschen kann, können Sie die in IAM bereitgestellte AmazonS3FullAccess-Richtlinie in der IAM-Rolle verwenden. Der ARN ist arn:aws:iam::aws:policy/AmazonS3FullAccess
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ] }
Wenn Sie die anzuwendenden IAM-Richtlinien ausgewählt haben, erstellen Sie eine IAM-Rolle und ordnen Sie sie den Richtlinien zu. Die resultierende IAM-Rolle muss die folgende Vertrauensrichtlinie für API Gateway enthalten, um diese Rolle zur Laufzeit zu übernehmen.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Wenn Sie die IAM-Konsole zum Erstellen dieser Rolle verwenden, wählen Sie den Amazon API Gateway-Rollentyp aus, um sicherzustellen, dass diese Vertrauensrichtlinie automatisch enthalten ist.
Erstellen von API-Ressourcen zum Darstellen von Amazon S3-Ressourcen
Wir verwenden die Stammressource (/
) der API als Container des Amazon S3-Buckets eines authentifizierten Aufrufers. Außerdem erstellen wir die Ressourcen Folder
und Item
, um einen bestimmten Amazon S3-Bucket bzw. ein bestimmtes Amazon S3-Objekt darzustellen. Der Ordnername und der Objektschlüssel werden vom Aufrufer in Form von Pfadparametern als Teil einer Anforderungs-URL angegeben.
Beim Zugriff auf Objekte, deren Objektschlüssel /
oder andere Sonderzeichen enthält, müssen diese Zeichen URL-kodiert sein. Beispielsweise sollte test/test.txt
zu test%2Ftest.txt
kodiert werden.
So erstellen Sie eine API-Ressource, die die Amazon S3-Servicefunktionen bereitstellt
-
Erstellen Sie in der API Gateway-Konsole eine API mit dem Namen MyS3. Die Stammressource dieser API (/) stellt den Amazon S3-Service dar.
-
Erstellen Sie unter der Stammressource der API eine untergeordnete Ressource mit dem Namen Folder und geben Sie als erforderlichen Resource Path /{folder} an.
-
Erstellen Sie für die Folder-Ressource der API die untergeordnete Ressource Item. Geben Sie als erforderlichen Resource Path /{item} an.
Bereitstellen einer API-Methode zur Auflistung der Amazon S3-Buckets des Aufrufers
Um die Liste der Amazon S3-Buckets des Aufrufers zu erhalten, muss die Aktion GET Service in Amazon S3 aufgerufen werden. Erstellen Sie die GET-Methode in der Stammressource der API (/). Konfigurieren Sie die GET-Methode für die Integration in Amazon S3 wie folgt.
So erstellen und initialisieren Sie die GET /
-Methode der API
-
Wählen Sie oben rechts im Bereich Ressourcen im Dropdown-Menü Aktionen die Option Methode erstellen im Stammknoten (
/
) aus. -
Wählen Sie
GET
aus der Dropdown-Liste der HTTP-Verben aus, und wählen Sie das Häkchen-Symbol, um die Methode zu erstellen. -
Wählen Sie im Bereich / - GET - Setup die Option AWS-Service für Integrationstyp aus.
-
Wählen Sie aus der Liste eine Region (z. B.
us-west-2
) für AWS Region. -
Wählen Sie unter AWS-Service die Option S3 aus.
-
AWS-Subdomäne lassen Sie leer.
-
Wählen Sie unter HTTP method die Option GET aus.
-
Wählen Sie unter Action Type die Option Use path override aus. Wenn der Pfad überschrieben wird, leitet API Gateway die Client-Anfrage an Amazon S3 als die entsprechende Amazon S3-REST-API-Path-Style-Anfrage weiter, worin eine Amazon S3-Ressource durch den Ressourcen-Pfad des
s3-host-name/bucket/key
-Musters ausgedrückt wird. API Gateway legt dens3-host-name
fest und gibt den Client, der inbucket
undkey
spezifiziert ist, vom Client an Amazon S3 weiter. -
(Optional) Geben Sie im Feld Path override das Symbol / ein.
-
Kopieren Sie den zuvor erstellten ARN der IAM-Rolle (aus der IAM-Konsole) und fügen Sie ihn in Execution role (Ausführungsrolle) ein.
-
Behalten Sie für alle anderen Einstellungen den Standardwert bei.
-
Wählen Sie Speichern aus, um die Einrichtung dieser Methode abzuschließen.
Mit dieser Einrichtung wird die Frontend-Anforderung GET
https://
in das your-api-host
/stage
/GET https://
am Backend integriert.your-s3-host
/
Nach der ersten Einrichtung können Sie diese Einstellungen auf der Seite Integration Request der Methode ändern.
Um zu kontrollieren, wer diese Methode unserer API aufrufen kann, aktivieren wir das Autorisierungs-Flag und setzen es auf AWS_IAM
.
So aktivieren Sie IAM, um den Zugriff auf die GET-Methode zu kontrollieren
-
Wählen Sie unter Method Execution die Option Method Request aus.
-
Klicken Sie auf das Stiftsymbol neben Authorization.
-
Wählen Sie
AWS_IAM
aus der Dropdown-Liste aus. -
Klicken Sie auf das Häkchen-Symbol, um die Einstellung zu speichern.
Damit unsere API erfolgreiche Antworten und Ausnahmen ordnungsgemäß an den Aufrufer zurückgibt, deklarieren wir die 200, 400 und 500 Antworten in Method Response. Wir verwenden die Standard-Zuweisung für 200-Antworten, so dass hier nicht deklarierte Backend-Antworten des Statuscodes an den Aufrufer als 200-Antworten zurückgegeben werden.
So deklarieren Sie Antworttypen für die GET-Methode
-
Wählen Sie im Bereich Method Execution das Feld Method Response aus. Das API Gateway deklariert die 200-Antwort standardmäßig.
-
Wählen Sie Add response aus, geben Sie
400
in das Eingabe-Textfeld ein und aktivieren Sie das Kontrollkästchen, um die Deklaration abzuschließen. -
Wiederholen Sie den obigen Schritt, um den 500-Antworttyp zu deklarieren. Die endgültige Einstellung sieht wie folgt aus:
Da die erfolgreiche Integrationsantwort von Amazon S3 die Bucket-Liste als XML-Nutzlast zurückgibt und die standardmäßige Methodenantwort von API Gateway eine JSON-Nutzlast zurückgibt, müssen wir den Parameterwert des Backend-Content-Type-Headers seinem Frontend-Gegenstück zuweisen. Andernfalls erhält der Client application/json
als Content-Type, wenn der Antworttext eigentlich eine XML-Zeichenfolge ist. Das folgende Verfahren zeigt, wie diese Einrichtung erfolgt. Darüber hinaus wollen wir dem Client auch andere Header-Parameter anzeigen, beispielsweise Datum und Content-Length.
So richten Sie Antwort-Header-Zuordnungen für die GET-Methode ein
-
Wählen Sie in der API Gateway-Konsole Method Response (Methodenantwort) aus. Fügen Sie den Content-Type-Header für den 200-Antworttyp hinzu.
-
Geben Sie unter Integration Response für Content-Type
integration.response.header.Content-Type
als Methodenantwort ein.Bei den obigen Header-Zuweisungen überträgt API Gateway den
Date
-Header vom Backend in denTimestamp
-Header für den Client. -
Wählen Sie unter Integration Response auch Add integration response aus und geben Sie als verbleibenden Methodenantwort-Status einen geeigneten regulären Ausdruck in das Textfeld HTTP status regex ein. Wiederholen Sie den Vorgang, bis jeder Methodenantwort-Status abgedeckt ist.
Testen wir zunächst die API, die wir bisher konfiguriert haben.
Testen der GET-Methode bei der API-Stammressource
-
Kehren Sie zu Method Execution zurück und wählen Sie Test im Feld Client aus.
-
Wählen Sie Test im Bereich GET / - Method Test aus. Ein Beispielergebnis wird wie folgt angezeigt.
Wenn Sie die API Gateway-Konsole zum Testen der API als Amazon S3-Proxy verwenden, stellen Sie sicher, dass der entsprechende S3-Bucket aus einer anderen Region als der API-Region stammt. Andernfalls wird möglicherweise der Fehler „500 Internal Server Error“ angezeigt. Diese Beschränkung gilt nicht für bereitgestellte APIs.
Bereitstellen von API-Methoden, um auf einen Amazon S3-Bucket zuzugreifen
Um mit einem Amazon S3-Bucket zu arbeiten, stellen wir die GET-, PUT- und DELETE-Methoden in der Ressource /{folder} zum Auflisten von Objekten in einem Bucket bereit, erstellen einen neuen Bucket und löschen einen vorhandenen Bucket. Die Anweisungen sind ähnlich wie diejenigen, die unter beschrieben sin Bereitstellen einer API-Methode zur Auflistung der Amazon S3-Buckets des Aufrufers. In den folgenden Erläuterungen skizzieren wir die allgemeinen Aufgaben und heben die relevanten Unterschiede hervor.
Bereitstellen der GET-, PUT- und DELETE-Methoden bei einer Ordnerressource
-
Erstellen Sie im /{folder}-Knoten der Resources-Struktur nacheinander die Methoden DELETE, GET und PUT.
-
Richten Sie die anfängliche Integration der einzelnen erstellten Methoden mit den entsprechenden Amazon S3-Endpunkten ein. Die folgende Abbildung zeigt diese Einstellung für die
PUT /{folder}
-Methode. Ersetzen Sie für die MethodenDELETE /{folder}
undGET /{folder}
denPUT
-Wert von HTTP-Methode durchDELETE
bzw.GET
Beachten Sie, dass wir den Pfadparameter
{bucket}
in den Amazon S3-Endpunkt-URLs verwendet haben, um den Bucket anzugeben. Wir müssen den Pfadparameter{folder}
der Methodenanforderungen dem Pfadparameter{bucket}
der Integrationsanforderungen zuordnen. -
So ordnen Sie
{folder}
{bucket}
zu:-
Wählen Sie Method Execution und anschließend Integration Request aus.
-
Erweitern Sie URL Path Parameters und wählen Sie Add path aus.
-
Geben Sie in der Spalte Name
bucket
und in der Spalte Mapped frommethod.request.path.folder
ein. Klicken Sie auf das Häkchen-Symbol, um die Zuweisung zu speichern.
-
-
Fügen Sie unter Method Request
Content-Type
zum Abschnitt HTTP Request Headers hinzu.Dies ist hauptsächlich für Tests erforderlich, wenn Sie die API Gateway-Konsole verwenden und wenn Sie
application/xml
für eine XML-Nutzlast angeben müssen. -
Richten Sie unter Integrationsanforderung eine Zuweisung für den
Content-Type
-Header anmethod.request.header.Content-Type
ein. Folgen Sie dabei den Anweisungen unter Bereitstellen einer API-Methode zur Auflistung der Amazon S3-Buckets des Aufrufers. -
Wählen Sie zum Testen der
PUT
-Methode unter Methodenausführung im Feld Client die Option Testen aus und geben Sie Folgendes für den Test ein:-
Geben Sie unter folder einen Bucket-Namen ein.
-
Geben Sie als Content-Typeapplication/xml
application/xml
ein. -
Geben Sie unter Request Body die Bucket-Region als Standortbeschränkung ein, die in einem XML-Fragment als Nutzlast der Anforderung deklariert ist. Beispiel,
<CreateBucketConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <LocationConstraint>
{region}
</LocationConstraint> </CreateBucketConfiguration>
-
-
Wiederholen Sie die oben beschriebenen Schritte zum Erstellen und Konfigurieren der GET- und DELETE-Methode bei der /{folder}-Ressource der API.
Die oben genannten Beispiele zeigen, wie Sie einen neuen Bucket in der angegebenen Region erstellen, wie Sie die Liste der Objekte im Bucket anzeigen und wie Sie den Bucket löschen. Andere Amazon S3-Bucket-Operationen erlauben es Ihnen, mit den Metadaten oder Eigenschaften des Buckets zu arbeiten. So können Sie beispielsweise Ihre API einrichten, um die Aktion PUT /?notification von Amazon S3 aufzurufen, um Benachrichtigungen für den Bucket einzurichten, um PUT /?acl aufzurufen, um eine Zugriffskontrollliste für den Bucket einzurichten usw. Die Einrichtung der API erfolgt auf ähnliche Weise, außer dass Sie den Amazon S3-Endpunkt-URLs entsprechende Abfrageparameter zuordnen müssen. Zur Laufzeit müssen Sie für die Methodenanforderung die entsprechende XML-Nutzlast angeben. Das Gleiche gilt für die Unterstützung der anderen GET- und DELETE-Operationen für einen Amazon S3-Bucket. Weitere Informationen zu möglichen Amazon S3-Aktionen für einen Bucket finden Sie unter Amazon S3-Operationen für Buckets.
Bereitstellen von API-Methoden für den Zugriff auf ein Amazon S3-Objekt in einem Bucket
Amazon S3 unterstützt GET-, DELETE-, HEAD-, OPTIONS-, POST- und PUT-Aktionen für den Zugriff auf und die Verwaltung von Objekte(n) in einem bestimmten Bucket. Eine vollständige Liste der unterstützten Aktionen finden Sie unter Amazon S3-Operationen für Objekte.
In diesem Tutorial stellen wir die Operationen PUT Object, GET Object, HEAD Object und DELETE Object über die API-Methoden PUT /{folder}/{item}
, GET /{folder}/{item}
, HEAD /{folder}/{item}
bzw. DELETE /{folder}/{item}
bereit.
Die API-Einrichtungen für die PUT-, GET- und DELETE-Methoden für /{folder}/{item}
sind ähnlich wie diejenigen für /{folder}
, wie in Bereitstellen von API-Methoden, um auf einen Amazon S3-Bucket zuzugreifen beschrieben. Ein wichtiger Unterschied besteht darin, dass der objektbezogene Anforderungpfad einen zusätzlichen Pfadparameter {item}
hat, und dass dieser Pfadparameter dem Pfadparameter für die Integrationsanfrage von {object}
zugeordnet werden muss.

Das Gleiche gilt für die GET- und DELETE-Methoden.
Zur Veranschaulichung zeigt der folgende Screenshot die Ausgabe, wenn die GET-Methode bei einer {folder}/{item}
-Ressource bei Verwendung der API Gateway-Konsole getestet wird. Die Anforderung gibt korrekt den reinen Text („Willkommen zu README.txt“) als Inhalt der angegebenen Datei (README.txt) in dem entsprechenden Amazon S3-Bucket (apig-demo) wieder.

Um Binärdateien, die in API Gateway als irgendetwas anderes als utf-8-codierter JSON-Inhalt betrachtet werden, herunter- oder hochzuladen, sind zusätzliche API-Einstellungen erforderlich. Dies kann wie folgt beschrieben werden:
Herunterladen oder Hochladen von Binärdateien von S3
-
Registrieren Sie die Medientypen der betroffenen Datei in den binaryMediaTypes des API. Sie können Sie von der Konsole aus erledigen:
-
Wählen Sie Settings (Einstellungen) für die API.
-
Wählen Sie unter Binary Media Types (Binäre Medientypen) die Option Add Binary Media Type (Binären Medientyp hinzufügen).
-
Geben Sie den gewünschten Medientyp ein, z. ,
image/png
. -
Wählen Sie zum Speichern der Einstellungen Save Changes (Änderungen speichern).
-
-
Fügen Sie den Header
Content-Type
(zum Hochladen) und/oderAccept
(zum Herunterladen) zur Methodenanfrage hinzu, um den Client aufzufordern, den erforderlichen binären Medientyp anzugeben, und weisen Sie sie der Integrationsanfrage zu. -
Setzen Sie Content Handling in der Integrationsanfrage auf
Passthrough
(für das Hochladen), und in einer Integrationsantwort (für das Herunterladen). Stellen Sie sicher, dass keine Mapping-Vorlage für den betroffenen Inhaltstyp definiert ist. Weitere Informationen finden Sie unter Integrations-Pass-Through-Verhalten und Auswählen einer VTL-Mapping-Vorlage.
Die maximale Größe der Nutzlast ist 10 MB. Siehe API Gateway-Kontingente für die Konfiguration und Ausführung einer REST-API.
Stellen Sie sicher, dass für Dateien in Amazon S3 die richtigen Inhaltstypen als Metadaten der Dateien hinzugefügt wurden. Bei streamfähigen Medieninhalten muss den Metadaten möglicherweise auch Content-Disposition:inline
hinzugefügt werden.
Weitere Informationen zur Unterstützung von Binärdateien in API Gateway finden Sie in Inhaltstypkonvertierungen in API Gateway.
Aufrufen der API mit einem REST-API-Client
Um ein End-to-End-Tutorial bereitzustellen, zeigen wir jetzt, wie die API mit Postman
So rufen Sie die Amazon S3-Proxy-API mit Postman auf
-
Stellen Sie die API bereit (oder erneut bereit). Notieren Sie die Basis-URL der API, die neben Invoke URL oben im Stage Editor angezeigt wird.
-
Starten Sie Postman.
-
Wählen Sie Autorisierung und anschließend
AWS Signature
. Geben Sie Ihre IAM-Benutzer-Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel in die entsprechenden Eingabefelder AccessKey und SecretKey ein. Geben Sie die AWS-Region, in der Ihre API bereitgestellt wird, in das Textfeld AWS-Region ein. Geben Sieexecute-api
in das Eingabefeld Service Name ein.Sie können ein Schlüsselpaar über die Registerkarte Security Credentials (Sicherheitsanmeldeinformationen) von Ihrem IAM-Benutzerkonto in der IAM Management Console erstellen.
-
So fügen Sie einen Bucket mit dem Namen
apig-demo-5
zu Ihrem Amazon S3-Konto in der Region
hinzu:{region}
Anmerkung Stellen Sie sicher, dass der Bucket-Name global einzigartig ist.
-
Wählen Sie in der Dropdown-Methodenliste PUT aus und geben Sie die Methoden-URL ein (
https://
)api-id
.execute-api.aws-region
.amazonaws.com/stage
/folder-name
-
Geben Sie bei
Content-Type
den Header-Wertapplication/xml
ein. Sie müssen möglicherweise vorhandene Header löschen, bevor Sie den Content-Type angeben können. -
Wählen Sie das Menüelement Body aus, und geben Sie das folgende XML-Fragment als Anforderungstext ein:
<CreateBucketConfiguration> <LocationConstraint>
{region}
</LocationConstraint> </CreateBucketConfiguration> -
Wählen Sie Senden aus, um die Anforderung zu senden. Bei Erfolg erhalten Sie die Antwort
200 OK
mit einer leeren Nutzlast.
-
-
Um zu einem Bucket eine Textdatei hinzuzufügen, befolgen Sie die obigen Anweisungen. Wenn Sie den Bucket-Namen
apig-demo-5
für{folder}
und den Dateinamen fürReadme.txt
für{item}
in der URL angeben und die TextzeichenfolgeHello, World!
als Dateiinhalt (und damit als Anforderungsnutzlast) angeben, wird die AnforderungPUT /S3/apig-demo-5/Readme.txt HTTP/1.1 Host: 9gn28ca086.execute-api.
{region}
.amazonaws.com Content-Type: application/xml X-Amz-Date: 20161015T062647Z Authorization: AWS4-HMAC-SHA256 Credential=access-key-id
/20161015/{region}
/execute-api/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=ccadb877bdb0d395ca38cc47e18a0d76bb5eaf17007d11e40bf6fb63d28c705b Cache-Control: no-cache Postman-Token: 6135d315-9cc4-8af8-1757-90871d00847e Hello, World!Wenn alles einwandfrei verläuft, erhalten Sie die Antwort
200 OK
mit einer leeren Nutzlast. -
Um den Inhalt der Datei
Readme.txt
abzurufen, die wir soeben zumapig-demo-5
-Bucket hinzugefügt haben, erstellen wir eine GET-Anforderung, die wie folgt aussieht:GET /S3/apig-demo-5/Readme.txt HTTP/1.1 Host: 9gn28ca086.execute-api.
{region}
.amazonaws.com Content-Type: application/xml X-Amz-Date: 20161015T063759Z Authorization: AWS4-HMAC-SHA256 Credential=access-key-id
/20161015/{region}
/execute-api/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=ba09b72b585acf0e578e6ad02555c00e24b420b59025bc7bb8d3f7aed1471339 Cache-Control: no-cache Postman-Token: d60fcb59-d335-52f7-0025-5bd96928098aBei Erfolg erhalten Sie die Antwort
200 OK
mit der TextzeichenfolgeHello, World!
als Nutzlast. -
Um Elemente im
apig-demo-5
-Bucket aufzulisten, senden Sie die folgende Anforderung:GET /S3/apig-demo-5 HTTP/1.1 Host: 9gn28ca086.execute-api.
{region}
.amazonaws.com Content-Type: application/xml X-Amz-Date: 20161015T064324Z Authorization: AWS4-HMAC-SHA256 Credential=access-key-id
/20161015/{region}
/execute-api/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=4ac9bd4574a14e01568134fd16814534d9951649d3a22b3b0db9f1f5cd4dd0ac Cache-Control: no-cache Postman-Token: 9c43020a-966f-61e1-81af-4c49ad8d1392Bei Erfolg erhalten Sie die Antwort
200 OK
mit einer XML-Nutzlast mit einem einzelnen Element im angegebenen Bucket, es sei denn, Sie haben noch mehr Dateien zu dem Bucket hinzugefügt, bevor Sie diese Anforderung gesendet haben.<?xml version="1.0" encoding="UTF-8"?> <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Name>apig-demo-5</Name> <Prefix></Prefix> <Marker></Marker> <MaxKeys>1000</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>Readme.txt</Key> <LastModified>2016-10-15T06:26:48.000Z</LastModified> <ETag>"65a8e27d8879283831b664bd8b7f0ad4"</ETag> <Size>13</Size> <Owner> <ID>06e4b09e9d...603addd12ee</ID> <DisplayName>
user-name
</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> </ListBucketResult>
Um ein Bild hoch- oder herunterzuladen, müssen Sie für die Inhaltsbehandlung die Option CONVERT_TO_BINARY auswählen.