All Projects → codenoid → file.io

codenoid / file.io

Licence: BSD-3-Clause License
🐈 💻 Simple File Share Service where the file is completely deleted after download.

Programming Languages

CSS
56736 projects
HTML
75241 projects
go
31211 projects - #10 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to file.io

Buntdb
BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support
Stars: ✭ 3,583 (+9328.95%)
Mutual labels:  key-value, in-memory
Olric
Distributed cache and in-memory key/value data store. It can be used both as an embedded Go library and as a language-independent service.
Stars: ✭ 2,067 (+5339.47%)
Mutual labels:  key-value, in-memory
Lmdbjava
Lightning Memory Database (LMDB) for Java: a low latency, transactional, sorted, embedded, key-value store
Stars: ✭ 546 (+1336.84%)
Mutual labels:  key-value, in-memory
Kiwi
A minimalistic in-memory key value store.
Stars: ✭ 154 (+305.26%)
Mutual labels:  key-value, in-memory
Cucache
Fast PUT/GET/DELETE in-memory key-value store for lookaside caching
Stars: ✭ 63 (+65.79%)
Mutual labels:  key-value, in-memory
gocache
High performance and lightweight in-memory cache library with LRU and FIFO support as well as memory-usage-based-eviction
Stars: ✭ 15 (-60.53%)
Mutual labels:  key-value, in-memory
chapar
A framework for verification of causal consistency for distributed key-value stores and their clients in Coq [maintainer=@palmskog]
Stars: ✭ 29 (-23.68%)
Mutual labels:  key-value
stack-public
A key-value based writer.
Stars: ✭ 19 (-50%)
Mutual labels:  key-value
eze
Embedded Zeebe Engine
Stars: ✭ 13 (-65.79%)
Mutual labels:  in-memory
Artifact
An in-memory distributed database
Stars: ✭ 63 (+65.79%)
Mutual labels:  key-value
k8s-kv
Kubernetes config maps backed KV store for stateful apps
Stars: ✭ 29 (-23.68%)
Mutual labels:  key-value
SimpleFS
Simple, Portable PHP File-Sharing
Stars: ✭ 1 (-97.37%)
Mutual labels:  file-sharing
kipp
A flexible file storage server
Stars: ✭ 33 (-13.16%)
Mutual labels:  file-sharing
elara
Elara DB is an easy to use, lightweight key-value database that can also be used as a fast in-memory cache. Manipulate data structures in-memory, encrypt database files and export data. 🎯
Stars: ✭ 93 (+144.74%)
Mutual labels:  key-value
tempdb
Key-value store for temporary items 📝
Stars: ✭ 16 (-57.89%)
Mutual labels:  key-value
iniquity
A re-imagining of the iconic BBS software.
Stars: ✭ 35 (-7.89%)
Mutual labels:  file-sharing
EasyDragDrop
A minimal java desktop app with awesome UI based on Swing to drag and drop files programmatically.
Stars: ✭ 16 (-57.89%)
Mutual labels:  file-sharing
archivebot
💾 A telegram bot for backing up and collecting all kinds of media.
Stars: ✭ 65 (+71.05%)
Mutual labels:  file-sharing
directorylister
魔改DirectoryLister支持Markdown,各种优化修改
Stars: ✭ 38 (+0%)
Mutual labels:  file-sharing
b52
b52 is a fast experimental Key/value database. With support for the memcache protocol.
Stars: ✭ 20 (-47.37%)
Mutual labels:  key-value

Fileio

File.io clone in Go, Simply upload a file, share the link, and after it is downloaded, the file is completely deleted. For added security, set an expiration on the file and it is deleted within a certain amount of time, even if it was never downloaded. Watch deployment & usage demo here

screenshot

Installation

By default, this project rely on Redis as primary database, and the default app port are 8080

Docker

Using file.io-clone docker image is the fastest way to try file.io clone if you already have docker installed

$ docker pull codenoid/file.io-clone
$ docker run --env DATABASE=redis://host.docker.internal:6379/0 -p 3003:8080 codenoid/file.io-clone
  # host.docker.internal currently only works in Windows & Mac, open *:3003 on your browser
  # for badger database, --env DATABASE=badger:/path/to/folder

Building From Source

before this, make sure Go already installed on your machine

$ git clone https://github.com/codenoid/file.io.git && cd file.io
$ go get github.com/GeertJohan/go.rice/rice
$ rice embed-go
$ go build -trimpath
$ ./fileio # open localhost:8080 on your browser

Configuring

Simply, you just need to set DATABASE env :

# for redis
DATABASE=redis://127.0.0.1:6379/0
# for badger, you need to specify existing or new badger working directory, if the directory is empty
# badger will automatically create the directory and write the data into it
DATABASE=badger:/full/path/to/folder

Example Usage

Using CURL

# upload
$ curl -F "[email protected]" http://localhost:8080/?exp=60s
{"expiry":"1m0s","key":"eA9666","link":"http://localhost:8080/eA9666","sec_exp": 60,"success":true}
# download
$ wget --content-disposition http://localhost:8080/eA9666
# xxxx-file-name downloaded, use chmod if it was binary
$ wget http://localhost:8080/eA9666
# 404 not found

# max file download times
$ curl -F "[email protected]" http://localhost:8080/?exp=60s&max=2
{"expiry":"1m0s","key":"eA9666","link":"http://localhost:8080/eA9OeA","sec_exp": 60,"success":true}
$ wget --content-disposition http://localhost:8080/eA9OeA
# downloaded
$ wget --content-disposition http://localhost:8080/eA9OeA
# downloaded
$ wget --content-disposition http://localhost:8080/eA9OeA
# 404 not found

Features & TODO

  • Custom expiration option
  • Content-Disposition header
  • Multiple Storage Support
  • Max download option/times
  • Simple API

Legal

This code is in no way affiliated with, authorized, maintained, sponsored or endorsed by https://www.file.io or any of its affiliates or subsidiaries. This is an independent and unofficial software. Use at your own risk.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].