{"id":20858926,"url":"https://github.com/secretshardul/s3-apigateway-proxy","last_synced_at":"2026-02-17T02:03:12.417Z","repository":{"id":101006194,"uuid":"223125775","full_name":"secretshardul/s3-apigateway-proxy","owner":"secretshardul","description":"Upload to s3 using API gateway as proxy based on AWS tutorial","archived":false,"fork":false,"pushed_at":"2019-11-21T08:58:38.000Z","size":2,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-12T07:47:21.896Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/secretshardul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-21T08:31:46.000Z","updated_at":"2019-11-21T08:58:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"1caeba6b-dbaa-46ac-8844-9a5c717b51ff","html_url":"https://github.com/secretshardul/s3-apigateway-proxy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/secretshardul/s3-apigateway-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/secretshardul%2Fs3-apigateway-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/secretshardul%2Fs3-apigateway-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/secretshardul%2Fs3-apigateway-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/secretshardul%2Fs3-apigateway-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/secretshardul","download_url":"https://codeload.github.com/secretshardul/s3-apigateway-proxy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/secretshardul%2Fs3-apigateway-proxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279009349,"owners_count":26084578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T04:48:02.544Z","updated_at":"2025-10-11T23:08:33.324Z","avatar_url":"https://github.com/secretshardul.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# s3-apigateway-proxy\nSimplified explaination of [AWS tutorial](https://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html) on API gateway as S3 proxy.\n\n## structure\n1. /: GET gives list of all buckets\n2. /{folder}: GET PUT DELETE for buckets\n3. /{filder}/{item}: GET PUT DELETE HEAD for items in bucket\n\n## steps\n1. Create IAM role for API gateway. Then attach s3fullaccess policy to it.\n2. Add resources and methods as mentioned above. \n3. During creation\n\n  **integration type**: AWS service\u003es3  \n  **HTTP method**: PUT GET DELETE(accordingly)  \n  **Path override** for each method depends on its resource. {folder}/{item} will be mapped to {bucket}/{object}:    \n  ```\n  1. Resource /: /\n  2. Resource /{folder}: {bucket} \n  3. Resource /{folder}/{item}: {bucket}/{object}\n  ```\n4. Path mappings\n \nobject -\u003e\tmethod.request.path.item\t\t (only for resource #3)              \nbucket -\u003e\tmethod.request.path.folder   (for resource #2 and #3)       \n\n5. Header mappings(resource #2 and #3)   \nMost s3 parameters like meta are passed through headers.   \n\nx-amz-acl -\u003e\t'authenticated-read'\t      \t \nContent-Type -\u003e \tmethod.request.header.Content-Type      \n\n## working\nBody can have text or binary. URL specifies bucket and object name. To enable binary add */* in settings\u003ebinary media. If IAM was used to authenticate API then add authorization\u003eAWS signature\n```\nhttps://xn2nuhcvxd.execute-api.us-east-1.amazonaws.com/dev/demobucket/bible.jpeg\n```\n\n      \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsecretshardul%2Fs3-apigateway-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsecretshardul%2Fs3-apigateway-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsecretshardul%2Fs3-apigateway-proxy/lists"}