{"id":18053343,"url":"https://github.com/luzifer/share","last_synced_at":"2026-02-08T23:15:20.529Z","repository":{"id":48016441,"uuid":"112853631","full_name":"Luzifer/share","owner":"Luzifer","description":"S3 based file sharing as a replacement for CloudApp / Droplr / ...","archived":false,"fork":false,"pushed_at":"2025-04-21T13:30:56.000Z","size":19847,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-01T12:52:35.750Z","etag":null,"topics":["aws","golang","s3","self-hosted","sharing"],"latest_commit_sha":null,"homepage":"","language":"Go","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/Luzifer.png","metadata":{"files":{"readme":"README.md","changelog":"History.md","contributing":"CONTRIBUTING.md","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},"funding":{"custom":["https://www.paypal.me/luzifer"],"github":["Luzifer"],"ko_fi":"luziferus"}},"created_at":"2017-12-02T15:35:06.000Z","updated_at":"2025-04-21T13:47:29.000Z","dependencies_parsed_at":"2024-06-19T19:00:12.865Z","dependency_job_id":"d5152cfd-73fa-4bee-8837-ef0707185848","html_url":"https://github.com/Luzifer/share","commit_stats":{"total_commits":90,"total_committers":1,"mean_commits":90.0,"dds":0.0,"last_synced_commit":"6344610c18caf441aed1bcae20d87df90d4fd4a2"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luzifer%2Fshare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luzifer%2Fshare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luzifer%2Fshare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luzifer%2Fshare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Luzifer","download_url":"https://codeload.github.com/Luzifer/share/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251879122,"owners_count":21658691,"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","golang","s3","self-hosted","sharing"],"created_at":"2024-10-30T23:16:51.753Z","updated_at":"2026-02-08T23:15:20.522Z","avatar_url":"https://github.com/Luzifer.png","language":"Go","funding_links":["https://www.paypal.me/luzifer","https://github.com/sponsors/Luzifer","https://ko-fi.com/luziferus"],"categories":[],"sub_categories":[],"readme":"![](https://img.shields.io/github/license/Luzifer/share)\n![](https://img.shields.io/github/downloads/Luzifer/share/total)\n![](https://img.shields.io/github/v/release/Luzifer/share)\n\n# Luzifer / share\n\n`share` is a small replacement I wrote for sharing my files through external services like CloudApp using Amazon S3. Files are uploaded using this utility into S3 and previewed (if supported) using the included frontend.\n\n![](./docs/demo.gif)\n\n## Browser Support\n\nThe frontend can be used in all modern browsers. Internet Explorer is not supported.\n\n## Setup / usage\n\n- Create a S3 bucket and CloudFront distribution  \n  (See [docs/cloudformation.yml](docs/cloudformation.yml) for an example stack)\n- Run bootstrap to initialize frontend files:  \n  `./share --bucket=\u003cbucket from step 1\u003e --bootstrap`\n- Upload files to your sharing bucket:  \n  `./share --bucket=\u003cbucket from step 1\u003e --base-url='https://your.site.com/#' \u003cyourfile\u003e`\n- Share the URL you received from last step\n\nAfter you've updated the binary you need to run the `--bootstrap` command once more to have the latest interface changes uploaded to your bucket.\n\n### Templating in `file-template`\n\nYou can specify where in the bucket the file should be stored and how it should be named by passing the `--file-template` parameter. It takes a Go template with these placeholders:\n\n- `{{ .Ext }}` - The extension of the file (including the leading dot, i.e. `.txt`)\n- `{{ .FileName }}` - The original filename without changes (i.e. `my video.mp4`)\n- `{{ .Hash }}` - The SHA256 hash of the file content\n- `{{ .SafeFileName }}` - URL-safe version of the filename (i.e. `my-video.mp4`)\n- `{{ .UUID }}` - Random UUIDv4 to be used within the URL to make it hard to guess\n\nExamples:\n\n- `--file-template=\"file/{{ printf \\\"%.8s\\\" .Hash}}/{{ .SafeFileName }}\"`\n- `--file-template=\"file/{{ printf \\\"%.8s\\\" .Hash}}/{{ .UUID }}{{ .Ext }}\"`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluzifer%2Fshare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluzifer%2Fshare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluzifer%2Fshare/lists"}