$ cargo build --release
$ . ./start.sh
-
POST
/record
interface Request{ title: string, lang: string, content: string, expiration: number, }
interface Response{ key: string }
-
GET
/record/{key}
interface Response{ title: string, lang: string, content: string, saving_time: number, expiration: number, view_count: number }
-
Error
interface Error{ code: number, message: string }
Prefix: PASTEBIN_
Shared Variable
var | default | unit | description |
---|---|---|---|
ADDR | localhost:8088 | Binding address | |
CRYPT_KEY | magic | Crypto key for short url | |
MAX_POST_SIZE | 32768 | byte | Max length of POST request body |
Built-in Memory Store
var | default | unit | description |
---|---|---|---|
MAX_STORE_SIZE | 104857600 | byte | An ambiguous size count for controlling server memory usage |
MAX_EXPIRATION | 604800 | second | Max expiration time |
CLEAN_DURATION | 5000 | millisecond | GC interval |
Redis Store
var | default | unit | description |
---|---|---|---|
REDIS_URL | set PASTEBIN_REDIS_URL to enable redis store |
.env
RUST_LOG=info
PASTEBIN_ADDR=localhost:8000
PASTEBIN_CRYPT_KEY=MyImportantSecret
PASTEBIN_REDIS_URL=redis://localhost:6379