【AWS】API Gateway创建Rest API--将文件上传到S3(基础版)

一、背景

在不给AK,SK的前提下,用户上传文件到s3

二、创建API

1、打开API Gateway,点击创建API,选择REST API

REST API和HTTP API区别:(来自AWS官网)

REST API 和 HTTP API 都是 RESTful API 产品。REST API 支持的功能比 HTTP API 多,而 HTTP API 在设计时功能就极少,因此能够以更低的价格提供。如果您需要如 API 密钥、每客户端节流、请求验证、AWS WAF 集成或私有 API 端点等功能,请选择 REST API。如果您不需要 REST API 中包含的功能,请选择 HTTP API。

2、 设置API名称,选择终端节点类型

终端节点类型:(来自AWS官网)

        区域性(REGIONAL):适用于同一区域中的客户端。当在 EC2 实例上运行的客户端调用同一区域中的 API,或 API 用于为具有高需求的少数客户端提供服务时,区域 API 可以降低连接开销。

        还有边缘优化(EDGE):最适合地理位置分散的客户端。API 请求将路由到最近的 CloudFront 接入点 (POP)。这是 API Gateway REST API 的默认终端节点类型。

        私有(PRIVATE):是一个只能使用接口 VPC 终端节点从 Amazon Virtual Private Cloud (VPC) 访问的 API 终端节点,该接口是您在 VPC 中创建的终端节点网络接口 (ENI)

 三、配置API

1、进入刚创建好的API,点击资源页,创建资源及方法

1.1创建资源, / 代表根目录,右击选择创建资源

 1.2创建方法,上传文件到s3,所以选择PUT方法

1.3点击刚创建的方法,进入集成请求

 1.3配置:

集成类型:AWS 服务

AWS区域:(选择相应的区域)

AWS服务:S3

AWS子域:(不用填)

HTTP方法:PUT

操作类型:路径覆盖

路径覆盖(可选):{bucket}/{object}

执行角色:(填写有执行API角色的ARN)

 路径覆盖也可以把路径某部分hard code

 在下方URL路径参数中填写路径参数映射关系

2、配置设置

翻到最下面,修改二进制媒体类型为   */*

Content-Encoding可以根据需要修改

默认上传文件大小不超过10M

三、部署API

 API配置完成后,右击根目录,部署API, 选择部署阶段,点击部署

注意:每次对API进行更改后要重新部署一下

四、测试API 

 测试通过两种方式:①Postman        ②python代码

获取URL链接

1、Postman

进入Postman,添加PUT请求,复制URL链接,在其后添加上传到S3的路径,点击send,即可在下方看到请求结果

2、python代码

import requests


def call_api(_url, _headers, _files):
    res = requests.put(_url, data=_files, headers=_headers)
    return res

def unload_s3(local_file_name,S3_file_name):
    # api gateway call url
    url_ip = ""
    # generate the url
    url = url_ip + S3_file_name

    # the file on your computer
    uploadFile = open(local_file_name, "rb")

    # call the api2s3 method
    res = call_api(url, headers, uploadFile)
    # print the result
    if res.ok:
        return ("Upload completed successfully!")
    else:
        return ("Upload failed!")

if __name__ == '__main__':

    # local file name 
    local_file_name = ''
    # S3 file_name to upload
    S3_file_name = ''
    unload_s3(local_file_name,S3_file_name)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

某可儿同学的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值