{"id":27037034,"url":"https://github.com/aphexlog/sample-s3-presigned-url-metadata","last_synced_at":"2025-07-06T10:07:48.080Z","repository":{"id":204320943,"uuid":"711505375","full_name":"aphexlog/sample-s3-presigned-url-metadata","owner":"aphexlog","description":null,"archived":false,"fork":false,"pushed_at":"2023-10-30T14:44:29.000Z","size":126,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-15T10:06:50.488Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aphexlog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2023-10-29T13:30:37.000Z","updated_at":"2023-10-29T17:22:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4f6b7c2-191f-4fc1-9171-5020a9555ba4","html_url":"https://github.com/aphexlog/sample-s3-presigned-url-metadata","commit_stats":null,"previous_names":["aphexlog/sample-s3-presigned-url-metadata"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aphexlog/sample-s3-presigned-url-metadata","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aphexlog%2Fsample-s3-presigned-url-metadata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aphexlog%2Fsample-s3-presigned-url-metadata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aphexlog%2Fsample-s3-presigned-url-metadata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aphexlog%2Fsample-s3-presigned-url-metadata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aphexlog","download_url":"https://codeload.github.com/aphexlog/sample-s3-presigned-url-metadata/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aphexlog%2Fsample-s3-presigned-url-metadata/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263882285,"owners_count":23524461,"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","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":"2025-04-05T01:15:56.672Z","updated_at":"2025-07-06T10:07:48.073Z","avatar_url":"https://github.com/aphexlog.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# S3 Presigned URL with Metadata Project\n\nhis Serverless Python project demonstrates how to extend an S3 presigned URL with metadata, which can later be retrieved during the object's lifecycle. It consists of two AWS Lambda functions:\n\n- `get_presigned_url` - Returns a presigned URL for uploading an object to an S3 bucket.\n- `get_metadata` - Returns the metadata of an object in an S3 bucket.\n\n## Requirements\n\n- AWS Account\n- Python 3.x\n- AWS CLI\n- Serverless Framework\n\n## Setup \u0026 Deployment\n\n1. Clone the repository.\n  ```bash\n  git clone \u003crepository_url\u003e\n  ```\n\n2. Navigate to the project directory.\n  ```bash\n  cd s3-presigned-url-with-metadata\n  ```\n\n3. Run `sam build` to build the application.\n  ```bash\n  serverless deploy\n  ```\n\n## Architecture\n\n- **AWS S3**: Storage service to host objects.\n- **AWS Lambda**: Two functions for generating presigned URLs and fetching metadata.\n\n## Limitations\n\n- Presigned URLs are time-sensitive.\n- Metadata is attached during the PUT operation and cannot be modified afterwards.\n\n## Contributing\n\nFeel free to contribute by submitting pull requests or by reporting issues.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faphexlog%2Fsample-s3-presigned-url-metadata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faphexlog%2Fsample-s3-presigned-url-metadata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faphexlog%2Fsample-s3-presigned-url-metadata/lists"}