1
0
Fork 0
mirror of https://github.com/Luzifer/share.git synced 2024-12-20 10:31:16 +00:00
S3 based file sharing as a replacement for CloudApp / Droplr / ...
Find a file
Knut Ahlers 632c48022f
Update deps, fix linter errors, improve code
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-03-18 13:42:19 +01:00
ci Move to simpler plain-js frontend with bundled assets 2021-08-26 15:29:25 +02:00
docs Add docs 2017-12-02 19:53:35 +01:00
frontend Move to simpler plain-js frontend with bundled assets 2021-08-26 15:29:25 +02:00
.eslintrc.js Move to simpler plain-js frontend with bundled assets 2021-08-26 15:29:25 +02:00
.gitignore Broaden compatibility by using babel on JavaScript 2018-07-26 23:05:46 +02:00
.repo-runner.yaml Add direct publishing for builds 2021-08-26 15:41:53 +02:00
CONTRIBUTING.md Add meta-files 2017-12-02 19:48:18 +01:00
Dockerfile Improve Dockerfile 2021-01-27 21:13:02 +01:00
go.mod Update deps, fix linter errors, improve code 2024-03-18 13:42:19 +01:00
go.sum Update deps, fix linter errors, improve code 2024-03-18 13:42:19 +01:00
History.md prepare release v0.13.0 2023-06-05 18:07:55 +02:00
http.go Update deps, fix linter errors, improve code 2024-03-18 13:42:19 +01:00
LICENSE Add meta-files 2017-12-02 19:48:18 +01:00
main.go Update deps, fix linter errors, improve code 2024-03-18 13:42:19 +01:00
Makefile Move to simpler plain-js frontend with bundled assets 2021-08-26 15:29:25 +02:00
mime.go Update deps, fix linter errors, improve code 2024-03-18 13:42:19 +01:00
progress.go Update deps, fix linter errors, improve code 2024-03-18 13:42:19 +01:00
README.md Document templating 2021-10-19 23:51:24 +02:00
upload.go Update deps, fix linter errors, improve code 2024-03-18 13:42:19 +01:00

Go Report Card

Luzifer / share

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.

Browser Support

The frontend can be used in all modern browsers. Internet Explorer is not supported.

Setup / usage

  • Create a S3 bucket and CloudFront distribution
    (See docs/cloudformation.yml for an example stack)
  • Run bootstrap to initialize frontend files:
    ./share --bucket=<bucket from step 1> --bootstrap
  • Upload files to your sharing bucket:
    ./share --bucket=<bucket from step 1> --base-url='https://your.site.com/#' <yourfile>
  • Share the URL you received from last step

After you've updated the binary you need to run the --bootstrap command once more to have the latest interface changes uploaded to your bucket.

Templating in file-template

You 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:

  • {{ .Ext }} - The extension of the file (including the leading dot, i.e. .txt)
  • {{ .FileName }} - The original filename without changes (i.e. my video.mp4)
  • {{ .Hash }} - The SHA1 hash of the file content
  • {{ .SafeFileName }} - URL-safe version of the filename (i.e. my-video.mp4)
  • {{ .UUID }} - Random UUIDv4 to be used within the URL to make it hard to guess

Examples:

  • --file-template="file/{{ printf \"%.8s\" .Hash}}/{{ .SafeFileName }}"
  • --file-template="file/{{ printf \"%.8s\" .Hash}}/{{ .UUID }}{{ .Ext }}"