Closed6

API Gateway + Lambdaでファイルアップロードを実装

rutamu30rutamu30

他のパラメータと同時にファイルアップロードするので、Content-Typeはmultipart/form-data を使う。
ファイルだけアップロードならContent-Typeはそのファイルの形式にあわせたもの(image/png, application/xml) でよい。

rutamu30rutamu30

Lambdaハンドラのeventに渡されるデータは以下のような感じ、(samconfig.tomlをアップロードした例)

{
    "resource": "/",
    "path": "/",
    "httpMethod": "GET",
    "requestContext": {
        "resourcePath": "/",
        "httpMethod": "GET",
        "path": "/Prod/",
        ...
    },
    "headers": {
        "Content-Type": multipart/form-data; boundary=------------------------82d580069494b055,
        ...
    },
    "pathParameters": null,
    "stageVariables": null,
    "body": "--------------------------820be70beac2b839
Content-Disposition: form-data; name="projectName"

testproject
--------------------------820be70beac2b839
Content-Disposition: form-data; name="fileName"; filename="samconfig.toml"
Content-Type: application/octet-stream

version = 0.1
[default]
[default.deploy]
[default.deploy.parameters]
stack_name = "serverless-openapi-demo-app"
s3_bucket = "aws-samxxxxxxx"
s3_prefix = "serverless-openapi-demo-app"
region = "us-east-1"
confirm_changeset = false
capabilities = "CAPABILITY_IAM"

--------------------------820be70beac2b839--",
 ...
}

https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html

このスクラップは2021/01/19にクローズされました