Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/philbobaggins/file-upload

A small web application to accept file uploads
https://github.com/philbobaggins/file-upload

docker file-upload rocket rust rust-lang rust-rocket upload web webapp

Last synced: 7 days ago
JSON representation

A small web application to accept file uploads

Awesome Lists containing this project

README

        

# ?????????????

A small web application to accept file uploads......

.........

.... allow people to upload files to my file server using only a web browser (i.e. so users don't have to install a SFTP client or any other software).

Each file will be placed in it's own subdirectory with the date & time of upload as the directory name, so you can easily find your files. The idea is that after someone has uploaded a file, you would go grab it and move it somewhere else, so nothing is left in the upload directory long term.

## Running with Docker or Podman

...... forward port 8000 .... map /opt/file_upload/data mapped to wherever you want the files to be stored

## TODO

* [ ] Documentation
* [ ] Docker image
* [x] Get it running
* [ ] Usage instructions
* [ ] Get it working with a smaller image like alpine
* [x] Prevent "invalid cross-device link" error:
*
*
* [ ] Get it to work without the`set_permissions` call
* This might be useful:
* [ ] Improve `index.html`:
* [x] Make it pretty
* [ ] Allow files to be dragged and dropped
* [x] Show acceptable file extensions
* [ ] Check the file extension locally in the browser before upload so user doesn't have to wait for upload to complete on a file that will be rejected anyway
* [x] Progress bar
* [ ] Authentication
* [x] Replace synchronous functions with async equivalents:
* [x] `std::fs::create_dir_all`
* [x] Creating and writing to `Original filename.txt`
* [ ] favicon
* [ ] Time zone -
* [ ] Sends a message to Slack when a file is uploaded

## License

Licensed under either of the following:

* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or )
* MIT license ([LICENSE-MIT](LICENSE-MIT) or )