Tutorial: Erstellen einer REST-API als Amazon S3-Proxy in API Gateway - Amazon API Gateway

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:

Anmerkung

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.

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.

Anmerkung

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
  1. Erstellen Sie in der API Gateway-Konsole eine API mit dem Namen MyS3. Die Stammressource dieser API (/) stellt den Amazon S3-Service dar.

  2. Erstellen Sie unter der Stammressource der API eine untergeordnete Ressource mit dem Namen Folder und geben Sie als erforderlichen Resource Path /{folder} an.

  3. Erstellen Sie für die Folder-Ressource der API die untergeordnete Ressource Item. Geben Sie als erforderlichen Resource Path /{item} an.

    
            Erstellen einer API in API Gateway als Amazon S3-Proxy

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
  1. Wählen Sie oben rechts im Bereich Ressourcen im Dropdown-Menü Aktionen die Option Methode erstellen im Stammknoten (/) aus.

  2. 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.

    
            Erstellen einer Methode zur Integration in Amazon S3
  3. Wählen Sie im Bereich / - GET - Setup die Option AWS-Service für Integrationstyp aus.

  4. Wählen Sie aus der Liste eine Region (z. B.us-west-2) für AWS Region.

  5. Wählen Sie unter AWS-Service die Option S3 aus.

  6. AWS-Subdomäne lassen Sie leer.

  7. Wählen Sie unter HTTP method die Option GET aus.

  8. 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 den s3-host-name fest und gibt den Client, der in bucket und key spezifiziert ist, vom Client an Amazon S3 weiter.

  9. (Optional) Geben Sie im Feld Path override das Symbol / ein.

  10. Kopieren Sie den zuvor erstellten ARN der IAM-Rolle (aus der IAM-Konsole) und fügen Sie ihn in Execution role (Ausführungsrolle) ein.

  11. Behalten Sie für alle anderen Einstellungen den Standardwert bei.

  12. Wählen Sie Speichern aus, um die Einrichtung dieser Methode abzuschließen.

Mit dieser Einrichtung wird die Frontend-Anforderung GET https://your-api-host/stage/ in das GET https://your-s3-host/ am Backend integriert.

Anmerkung

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
  1. Wählen Sie unter Method Execution die Option Method Request aus.

  2. Klicken Sie auf das Stiftsymbol neben Authorization.

  3. Wählen Sie AWS_IAM aus der Dropdown-Liste aus.

  4. Klicken Sie auf das Häkchen-Symbol, um die Einstellung zu speichern.

    
            Deklarieren von Methodenantworttypen

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
  1. Wählen Sie im Bereich Method Execution das Feld Method Response aus. Das API Gateway deklariert die 200-Antwort standardmäßig.

  2. 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.

  3. Wiederholen Sie den obigen Schritt, um den 500-Antworttyp zu deklarieren. Die endgültige Einstellung sieht wie folgt aus:

    
            Deklarieren von Methodenantworttypen

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
  1. 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.

    
            Deklarieren von Methodenantwort-Headern
  2. Geben Sie unter Integration Response für Content-Type integration.response.header.Content-Type als Methodenantwort ein.

    
            Zuweisen von Integrationsantwort-Headern zu Methodenantwort-Headern

    Bei den obigen Header-Zuweisungen überträgt API Gateway den Date-Header vom Backend in den Timestamp-Header für den Client.

  3. 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.

    
            Einrichten von Integrationsantwort-Statuscodes

Testen wir zunächst die API, die wir bisher konfiguriert haben.

Testen der GET-Methode bei der API-Stammressource
  1. Kehren Sie zu Method Execution zurück und wählen Sie Test im Feld Client aus.

  2. Wählen Sie Test im Bereich GET / - Method Test aus. Ein Beispielergebnis wird wie folgt angezeigt.

    
            Testen des GET-Bucket-Ergebnisses für API-Stammressource
Anmerkung

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
  1. Erstellen Sie im /{folder}-Knoten der Resources-Struktur nacheinander die Methoden DELETE, GET und PUT.

  2. 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 Methoden DELETE /{folder} und GET /{folder} den PUT-Wert von HTTP-Methode durch DELETE bzw. GET

    
            Einrichten einer PUT /{folder}-Methode

    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.

  3. So ordnen Sie {folder} {bucket} zu:

    1. Wählen Sie Method Execution und anschließend Integration Request aus.

    2. Erweitern Sie URL Path Parameters und wählen Sie Add path aus.

    3. Geben Sie in der Spalte Name bucket und in der Spalte Mapped from method.request.path.folder ein. Klicken Sie auf das Häkchen-Symbol, um die Zuweisung zu speichern.

      
                Einrichten einer PUT /{folder}-Methode
  4. Fügen Sie unter Method Request Content-Type zum Abschnitt HTTP Request Headers hinzu.

    
            Einrichten einer PUT /{folder}-Methode

    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.

  5. Richten Sie unter Integrationsanforderung eine Zuweisung für den Content-Type-Header an method.request.header.Content-Type ein. Folgen Sie dabei den Anweisungen unter Bereitstellen einer API-Methode zur Auflistung der Amazon S3-Buckets des Aufrufers.

  6. 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:

    1. Geben Sie unter folder einen Bucket-Namen ein.

    2. Geben Sie als Content-Typeapplication/xmlapplication/xml ein.

    3. 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>

      
                Testen der PUT-Methode, um einen Amazon S3-Bucket zu erstellen.
  7. 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.


        Integrieren der PUT-Methodenanforderung in die Ressource /{folder}/{item} in Amazon S3

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.


        Testen des GET-Bucket-Ergebnisses für API „Folder/Item“

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
  1. Registrieren Sie die Medientypen der betroffenen Datei in den binaryMediaTypes des API. Sie können Sie von der Konsole aus erledigen:

    1. Wählen Sie Settings (Einstellungen) für die API.

    2. Wählen Sie unter Binary Media Types (Binäre Medientypen) die Option Add Binary Media Type (Binären Medientyp hinzufügen).

    3. Geben Sie den gewünschten Medientyp ein, z. , image/png.

    4. Wählen Sie zum Speichern der Einstellungen Save Changes (Änderungen speichern).

  2. Fügen Sie den Header Content-Type (zum Hochladen) und/oder Accept (zum Herunterladen) zur Methodenanfrage hinzu, um den Client aufzufordern, den erforderlichen binären Medientyp anzugeben, und weisen Sie sie der Integrationsanfrage zu.

  3. 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 aufgerufen wird, das die AWS-IAM-Autorisierung unterstützt.

So rufen Sie die Amazon S3-Proxy-API mit Postman auf
  1. 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.

  2. Starten Sie Postman.

  3. 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 Sie execute-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.

  4. So fügen Sie einen Bucket mit dem Namen apig-demo-5 zu Ihrem Amazon S3-Konto in der Region {region} hinzu:

    Anmerkung

    Stellen Sie sicher, dass der Bucket-Name global einzigartig ist.

    1. 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)

    2. Geben Sie bei Content-Type den Header-Wert application/xml ein. Sie müssen möglicherweise vorhandene Header löschen, bevor Sie den Content-Type angeben können.

    3. Wählen Sie das Menüelement Body aus, und geben Sie das folgende XML-Fragment als Anforderungstext ein:

      <CreateBucketConfiguration> <LocationConstraint>{region}</LocationConstraint> </CreateBucketConfiguration>
    4. Wählen Sie Senden aus, um die Anforderung zu senden. Bei Erfolg erhalten Sie die Antwort 200 OK mit einer leeren Nutzlast.

  5. 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ür Readme.txt für {item} in der URL angeben und die Textzeichenfolge Hello, World! als Dateiinhalt (und damit als Anforderungsnutzlast) angeben, wird die Anforderung

    PUT /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.

  6. Um den Inhalt der Datei Readme.txt abzurufen, die wir soeben zum apig-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-5bd96928098a

    Bei Erfolg erhalten Sie die Antwort 200 OK mit der Textzeichenfolge Hello, World! als Nutzlast.

  7. 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-4c49ad8d1392

    Bei 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>
Anmerkung

Um ein Bild hoch- oder herunterzuladen, müssen Sie für die Inhaltsbehandlung die Option CONVERT_TO_BINARY auswählen.