Files
once/README.md

45 lines
1.5 KiB
Markdown

# once: a one-time file sharing personal service
It happens that I want to share a file with someone which is sensitive enough
that I don't want to upload on a public free service.
I would like to have something like transfer.sh, running
as a personal service, with the following features:
- it must be serverless (I'm not willing to pay except for the actual file storage, and only for the time strictly required)
- it must return a link that I can share to anyone
- file must be deleted as soon as it get *successfully downloaded*
- it must expose a simple HTTP API, so *curl* should suffice to share a file
- it must be protected with some form of authentication
With CDK I could create the following resources:
- An S3 bucket to host the uploaded files
- A Lambda function to implement the 'get-upload-ticket'
- A Dynamodb table to store the information about the entries
- Another Lambda function to implement a "smart" download handler, to delete the file after the very first successful transfer.
I will use API Gateway to expose the lambda functions as an HTTP API.
HERE BE DIAGRAM!
## TODO
[+] Publish it to a custom domain name: DONE
[+] Set logs retention policy
[+] Deploy custom domain as a nested stack
[+] Mask link preview depending on the user agent
[+] Add a robust authentication method
- Add progressbar to client
- Package application as a click app
- Write a proper README with instructions
- Record a demo
- write tests with pytest
- publish the source code
- write a blog post
- add a link to the blog post in the README