Skip to main content

API to get an S3 presigned url for file uploads

Project description

cdk-s3-upload-presignedurl-api

cdk-s3-upload-presignedurl-api is AWS CDK construct library that create an API to get a presigned url to upload a file in S3.

Background

In web and mobile applications, it's common to provide the ability to upload data (documents, images, ...). Uploading files on a web server can be challenging and AWS recommends to upload files directly to S3. To do that securely, you can use pre-signed URLs. This blog post provides some more details.

Architecture

Architecture

  1. The client makes a call to the API, specifying the "contentType" of the file to upload in request parameters (eg. ?contentType=image/png in the URL)
  2. API Gateway handles the request and execute the Lambda function.
  3. The Lambda function makes a call to the getSignedUrl api for a putObject operation.
  4. The Lambda function returns the generated URL and the key of the object in S3 to API Gateway.
  5. The API returns the generated URL and the key of the object in S3 to the client.
  6. The client can now use this URL to upload a file, directly to S3.

Getting Started

TypeScript

Installation

$ npm install --save cdk-s3-upload-presignedurl-api

Usage

import * as cdk from '@aws-cdk/core';
import { S3UploadPresignedUrlApi } from 'cdk-s3-upload-presignedurl-api';

const app = new cdk.App();
const stack = new cdk.Stack(app, '<your-stack-name>');

new S3UploadPresignedUrlApi(stack, 'S3UploadSignedUrl');

Python

Installation

$ pip install cdk-s3-upload-presignedurl-api

Usage

import aws_cdk.core as cdk
from cdk-s3-upload-presignedurl-api import S3UploadPresignedUrlApi

app = cdk.App()
stack = cdk.Stack(app, "<your-stack-name>")

S3UploadPresignedUrlApi(stack, 'S3UploadSignedUrl')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cdk-s3-upload-presignedurl-api-0.0.4.tar.gz (543.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cdk_s3_upload_presignedurl_api-0.0.4-py3-none-any.whl (542.1 kB view details)

Uploaded Python 3

File details

Details for the file cdk-s3-upload-presignedurl-api-0.0.4.tar.gz.

File metadata

File hashes

Hashes for cdk-s3-upload-presignedurl-api-0.0.4.tar.gz
Algorithm Hash digest
SHA256 c5f9cf6284844479ee130926cf323c65efbad698309dae4c457267b6584bf883
MD5 fc0c8e2678cb11cb376860de89ca86a4
BLAKE2b-256 2086aacf585e46886f338b776dacfc56515c606e41dd8711fd127fb6a1d81117

See more details on using hashes here.

File details

Details for the file cdk_s3_upload_presignedurl_api-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for cdk_s3_upload_presignedurl_api-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ad0142ed02c4b6b8f7f8b793803ea3bfbe0add58b6efc6747e9f692381dc66e2
MD5 99b1145694573805eddc670c3227f8be
BLAKE2b-256 02d856f9a444780f13500d558af011c4de81bf2c6349610af8c31539cf93eac9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page