126 lines
5.7 KiB
Markdown
126 lines
5.7 KiB
Markdown
# contented
|
|
|
|
[![](doc/image1.thumb.png)](doc/image1.png)
|
|
|
|
A file / image / paste upload server with a focus on embedding.
|
|
|
|
You can use contented as a standalone upload server, or you can use the SDK to embed its upload widget into another website.
|
|
|
|
## Features
|
|
|
|
- Drag and drop upload
|
|
- Multiple files upload
|
|
- Pastebin upload
|
|
- Custom drawing upload ([via drawingboard.js](https://github.com/Leimi/drawingboard.js))
|
|
- Ctrl-V upload
|
|
- SDK-oriented design for embedding, including CORS support
|
|
- Mobile friendly HTML interface
|
|
- Preserves uploaded filename and content-type metadata
|
|
- Hash verification (SHA512/256)
|
|
- Detect duplicate upload content and reuse storage
|
|
- Options to limit the upload filesize and the upload bandwidth
|
|
- Short URLs (using [Hashids](http://hashids.org) algorithm)
|
|
- Image thumbnailing
|
|
|
|
## Usage (Server)
|
|
|
|
```
|
|
Usage of contented:
|
|
-data string
|
|
Directory for stored content (default "")
|
|
-db string
|
|
Path for metadata database (default "contented.db")
|
|
-diskFilesWorldReadable
|
|
Save files as 0644 instead of 0600
|
|
-enableHomepage
|
|
Enable homepage (disable for embedded use only) (default true)
|
|
-listen string
|
|
IP/Port to bind server (default "127.0.0.1:80")
|
|
-max int
|
|
Maximum size of uploaded files in MiB (set zero for unlimited) (default 8)
|
|
-speed int
|
|
Maximum upload speed in bytes/sec (set zero for unlimited)
|
|
-title string
|
|
Title used in web interface (default "contented")
|
|
-trustXForwardedFor
|
|
Trust X-Forwarded-For reverse proxy headers
|
|
-concurrentthumbs
|
|
Simultaneous thumbnail generation (default 16)
|
|
```
|
|
|
|
If you are hosting behind a reverse proxy, remember to set its post body size parameter appropriately (e.g. `client_max_body_size` for nginx).
|
|
|
|
## Usage (HTTP)
|
|
|
|
The server responds on the following URLs:
|
|
|
|
URL |Method |Description
|
|
---------------------|-------|---
|
|
`/get/{ID}` |`GET` |Download item content
|
|
`/info/{ID}` |`GET` |Get item content metadata (JSON)
|
|
`/thumb/{Type}/{ID}` |`GET` |Get item thumbnail image
|
|
`/about` |`GET` |Get server metadata (JSON)
|
|
|
|
## Usage (Embedding for web)
|
|
|
|
Your webpage should load the SDK from the contented server, then call the `contented.init` function to display the upload widget over the top of an existing DOM element. Your callback will be passed an array of file IDs of any uploaded items.
|
|
|
|
```html
|
|
<script type="text/javascript" src="SERVER_ADDR/sdk.js"></script>
|
|
contented.init("#target", function(/* String[] */ items) {});
|
|
```
|
|
|
|
## Changelog
|
|
|
|
2020-07-25: 1.3.0
|
|
- Feature: Option to limit concurrent thumbnail generation
|
|
- Enhancement: Set charset=UTF-8 when serving user-submitted text/plain content
|
|
- Fix an issue with large memory usage for multipart file uploads
|
|
|
|
2018-06-09: 1.2.1
|
|
- Feature: Add OpenGraph tags on preview pages, for rich metadata in chat applications
|
|
- Update thumbnailing library to improve quality
|
|
- Use dep for vendoring
|
|
- [⬇️ contented-1.2.1-win32.7z](https://git.ivysaur.me/attachments/88dea4f7-e314-4325-a957-096dcf8cdecc) *(1.51 MiB)*
|
|
- [⬇️ contented-1.2.1-src.zip](https://git.ivysaur.me/attachments/6fd2b963-3be4-48a6-a5bf-6f273bcaea24) *(1.49 MiB)*
|
|
- [⬇️ contented-1.2.1-linux64.tar.gz](https://git.ivysaur.me/attachments/c536f764-0250-4d67-886a-4797946e1124) *(2.21 MiB)*
|
|
|
|
2017-11-18: 1.2.0
|
|
- Feature: Thumbnail support
|
|
- Feature: File preview page
|
|
- Feature: Album mode (via URL `/p/{file1}-{file2}-...`)
|
|
- Feature: New `-diskFilesWorldReadable` option to save files with `0644` mode
|
|
- [⬇️ contented-1.2.0-win32.7z](https://git.ivysaur.me/attachments/f3453b62-b2a7-4e77-9b04-44c99dec35ba) *(1.36 MiB)*
|
|
- [⬇️ contented-1.2.0-src.zip](https://git.ivysaur.me/attachments/a6c1ecfb-fd6a-44b5-9dc8-aea7c439d1e6) *(178.94 KiB)*
|
|
- [⬇️ contented-1.2.0-linux64.tar.gz](https://git.ivysaur.me/attachments/6234754b-af17-4a72-8b66-56a5db21c7c7) *(2.03 MiB)*
|
|
|
|
2017-10-15: 1.1.0
|
|
- Feature: Drawing mode
|
|
- Feature: Ctrl+V image upload
|
|
- Feature: Option to trust X-Forwarded-For headers when using a reverse proxy
|
|
- Feature: Add `getDownloadURL`, `getInfoJSONURL`, `getPreviewURL` SDK methods
|
|
- Feature: Option to disable uploading via the homepage
|
|
- Feature: Add button to repeat when uploading from homepage
|
|
- Enhancement: Automatically load library dependencies
|
|
- Enhancement: Display homepage widget using the full screen size
|
|
- Include drawingboard.js 0.4.6 (MIT license)
|
|
- Fix a cosmetic issue with javascript console output
|
|
- Fix a cosmetic issue with error messages if an upload failed
|
|
- [⬇️ contented-1.1.0-win32.7z](https://git.ivysaur.me/attachments/bfb0a7fe-bf95-4d0e-933b-8137bc8071a4) *(1.11 MiB)*
|
|
- [⬇️ contented-1.1.0-src.zip](https://git.ivysaur.me/attachments/67401341-724f-4ea2-b9c7-44d08ab9d38a) *(142.82 KiB)*
|
|
- [⬇️ contented-1.1.0-linux64.tar.gz](https://git.ivysaur.me/attachments/a13752dd-5228-4830-b61d-0f7cc568b2ae) *(1.67 MiB)*
|
|
|
|
2017-10-08: 1.0.1
|
|
- Fix an issue with CORS preflight requests
|
|
- Fix an issue with index URLs
|
|
- [⬇️ contented-1.0.1-win32.7z](https://git.ivysaur.me/attachments/a873d510-da09-4797-95e9-ffcad690a77b) *(1.10 MiB)*
|
|
- [⬇️ contented-1.0.1-src.zip](https://git.ivysaur.me/attachments/43ac17d6-b6f1-4da7-98e9-b8af6fb5551a) *(109.08 KiB)*
|
|
- [⬇️ contented-1.0.1-linux64.tar.gz](https://git.ivysaur.me/attachments/34d74bed-db3f-4cef-a76f-266f0b9e6017) *(1.65 MiB)*
|
|
|
|
2017-10-08: 1.0.0
|
|
- Initial public release
|
|
- Include jQuery 1.12.4 (MIT license)
|
|
- [⬇️ contented-1.0.0-win32.7z](https://git.ivysaur.me/attachments/4ef132cf-dac8-4bcf-9da7-14ca1366e815) *(1.10 MiB)*
|
|
- [⬇️ contented-1.0.0-src.zip](https://git.ivysaur.me/attachments/74d77b3f-557b-44bf-9645-7b3b25ab17c1) *(102.45 KiB)*
|
|
- [⬇️ contented-1.0.0-linux64.tar.gz](https://git.ivysaur.me/attachments/1c28a913-686b-44cf-b63d-db22968a93b6) *(1.65 MiB)*
|