{"id":29163752,"url":"https://github.com/androsyz/s3_presign_generator","last_synced_at":"2025-07-01T06:04:42.800Z","repository":{"id":301714765,"uuid":"1005612560","full_name":"androsyz/s3_presign_generator","owner":"androsyz","description":"AWS S3 pre-signed URLs from CSV file","archived":false,"fork":false,"pushed_at":"2025-06-28T10:53:44.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-28T11:38:47.430Z","etag":null,"topics":["aws-s3","elixir","presigned-url"],"latest_commit_sha":null,"homepage":"","language":"Elixir","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/androsyz.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,"zenodo":null}},"created_at":"2025-06-20T14:06:35.000Z","updated_at":"2025-06-28T10:53:47.000Z","dependencies_parsed_at":"2025-06-28T11:50:22.051Z","dependency_job_id":null,"html_url":"https://github.com/androsyz/s3_presign_generator","commit_stats":null,"previous_names":["androsyz/s3_presign_generator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/androsyz/s3_presign_generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/androsyz%2Fs3_presign_generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/androsyz%2Fs3_presign_generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/androsyz%2Fs3_presign_generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/androsyz%2Fs3_presign_generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/androsyz","download_url":"https://codeload.github.com/androsyz/s3_presign_generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/androsyz%2Fs3_presign_generator/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262908626,"owners_count":23382764,"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":["aws-s3","elixir","presigned-url"],"created_at":"2025-07-01T06:04:35.417Z","updated_at":"2025-07-01T06:04:42.786Z","avatar_url":"https://github.com/androsyz.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# S3 Presign Generator\n\nGenerate AWS S3 pre-signed URLs from a CSV file input.\n\nThis tool reads a CSV file containing folder and filename columns, generates pre-signed S3 URLs for each file, and writes the result into an output CSV. It's useful for temporary access to private S3 files without exposing AWS credentials.\n\n---\n\n## ✨ Features\n\n- 🔐 Uses AWS pre-signed URLs with customizable expiration.\n- 📂 Reads CSV with headers like `identifier`, `folder_name`, `filename`.\n- 📄 Writes output CSV with columns: `identifier,presigned_url`.\n- ⚙️ All configurations are via `.env` or system environment variables.\n\n---\n\n## 🚀 Getting Started\n1. **Install Dependencies**\n```\n  mix deps.get\n```\n\n2. **Set Environment Variables**\n\nCreate a `.env` file by copying the provided example:\n```\n  cp .env.example .env\n```\n\nThen, edit `.env` and set the required values:\n```\nAWS_ACCESS_KEY_ID=your_access_key\nAWS_SECRET_ACCESS_KEY=your_secret_key\nAWS_REGION=ap-southeast-1\nAWS_BUCKET=your_bucket_name\nAWS_EXPIRES=3600\nAWS_BASE_FOLDER=private\n\nFILE_INPUT=input.csv\nFILE_OUTPUT=output.csv\nFILE_IDENTIFIER_HEADER=identifier\n```\n\n3. **Run App**\nYou can run the tool using the provided Makefile:\n```\n  make run\n```\n\n## 📂 Input and Output CSV\nThe CSV file should include the following headers:\n```\n  user_id,folder_name,filename\n  aksjdh312gj,folder1,document.pdf\n```\n\nAn output CSV file will be generated (default: output.csv) with columns like:\n```\n  user_id,presigned_url\n  aksjdh312gj,https://s3.ap-southeast-1.amazonaws.com/your_bucket/private/...\n```\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrosyz%2Fs3_presign_generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrosyz%2Fs3_presign_generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrosyz%2Fs3_presign_generator/lists"}