使用 REST API 客户端调用 API
为了提供端到端教程,我们现在演示如何使用支持AWS IAM 授权的 Postman
使用 Postman 调用我们的 Amazon S3 代理 API
-
部署或重新部署 API。记下位于阶段编辑器顶部的调用 URL 旁边显示的 API 的基本 URL。
-
启动 Postman。
-
选择授权,然后选择
AWS Signature
。分别在 AccessKey 和 SecretKey 输入字段中键入 IAM 用户的访问密钥 ID 和秘密访问密钥。在 AWS 区域文本框中输入将您的 API 部署到的 AWS 区域。在服务名称输入字段中输入execute-api
。您可以在 IAM 管理控制台的 IAM 用户账户的安全凭证选项卡中创建一对密钥。
-
要在
amzn-s3-demo-bucket
区域内将名为
的存储桶添加到您的 Amazon S3 账户,请执行以下操作:{region}
-
从下拉方法列表中选择 PUT 并键入方法 URL (
https://
)api-id
.execute-api.aws-region
.amazonaws.com/stage
/folder-name
-
将
Content-Type
标头值设置为application/xml
。在设置内容类型之前,您可能需要先删除任何现有标头。 -
选择正文菜单项并键入以下 XML 片段作为请求正文:
<CreateBucketConfiguration> <LocationConstraint>
{region}
</LocationConstraint> </CreateBucketConfiguration> -
选择发送以提交请求。如果成功,您应该会收到一个负载为空的
200 OK
响应。
-
-
要将文本文件添加到存储桶,请按照上述说明执行操作。如果您在 URL 中为
amzn-s3-demo-bucket
指定存储桶名称{folder}
,为Readme.txt
指定文件名{item}
,并提供文本字符串Hello, World!
作为文件内容(从而使其成为请求负载),则此请求将成为PUT /S3/amzn-s3-demo-bucket/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!如果一切正常,您应该会收到一个负载为空的
200 OK
响应。 -
要获取我们刚刚添加到
Readme.txt
存储桶的amzn-s3-demo-bucket
文件的内容,请发出类似于以下的 GET 请求:GET /S3/amzn-s3-demo-bucket/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如果成功,您应该会收到负载为
200 OK
文本字符串的Hello, World!
响应。 -
要列出
amzn-s3-demo-bucket
存储桶中的项目,请提交以下请求:GET /S3/amzn-s3-demo-bucket 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如果成功,您应该会收到
200 OK
响应且其 XML 负载在指定存储桶中显示单个项目,除非您在提交请求前将更多文件添加到存储桶中。<?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>
注意
要上传或下载映像,您需要将内容处理设置为 CONVERT_TO_BINARY。