- short term storage for quickly sharing files
- expiring files that are actually deleted (default 10min)
- easy-to-share links
- usable from a cli or from the web UI
Open http://hostname:3000/ in any browser. Drag a file onto the drop zone, watch the progress bar fill, and copy the share link from the result card. The same page exposes lookup and live statistics.
FilePile can also be used from the command line with curl or from scripts. The API lives under /api/.
curl -X POST \
-F "file=@</path/to/file>" \
http://hostname:3000/api/upload
curl -X GET \
http://hostname:3000/api/info/<file id>
curl -X GET \
http://hostname:3000/api/download/<file id> \
--output <file>
curl -X GET \
http://hostname:3000/api/statistics
Note
The API always responds with JSON (except /api/download, which streams the file).
- POST:
/api/upload- upload a file.
- returns with the file id needed for other functionality and sharing.
- GET:
/api/info/<file id>- returns information about the file.
- filename
- size of file (in bytes)
- time of upload
- time till expiry (in milliseconds)
- returns information about the file.
- GET:
/api/download/<file id>- returns the actual file with its original filename.
- GET:
/api/statistics- returns useful (or at least cool) statistics about this instance.
- files uploaded
- files downloaded
- megabytes downloaded
- returns useful (or at least cool) statistics about this instance.
I am cautious of relying on random seemingly good-willing file hosts on the internet. I want to be sure that my data is private, especially when sharing sensitive information such as SSH keys. I also didn't like that almost none of these online tools were easily usable from a command line. This led to me building FilePile.
- Clone the repo
cd src && npm installnpm run build && npm start
Feel free to contribute. Run npm run dev in /src for the Next.js dev server.
