A thumbor server extension for DASH
Project description
thumbor_dash
A thumbor server extension for DASH
Setup
Requirements
- Python >= 3.9
- Pip >= 21.1
- Thumbor == 7.0.0a5
See the requirements for setting up thumbor
in the documentation
1. Install thumbor_dash
pip install thumbor_dash
Note: thumbor_dash, thumbor, and other required dependencies will be installed
2. Create a thumbor configuration file
thumbor-config > thumbor.conf
3. Add these lines to thumbor.conf
file
# Set allowed dimensions
MIN_WIDTH = 1
MIN_HEIGHT = 1
MAX_WIDTH = 1200
MAX_HEIGHT = 800
# Use custom Url signing method (sha256)
URL_SIGNER = 'thumbor_dash.url_signers.base64_hmac_sha256'
# Allow only signed URL
ALLOW_UNSAFE_URL = False
# Set user moderation rules
REQUEST_TIME_LIMIT = 1 # time between requests in minutes
USAGE_VIOLATION_LIMIT = 5 # total number of times a requester can violate the time limit before ban
BAN_DURATION = 10 # requester ban duration in minutes
# Use custom error handling
USE_CUSTOM_ERROR_HANDLING = True
ERROR_HANDLER_MODULE = 'thumbor_dash.error_handlers.sentry'
# User-defined MN and IP list
SEED_IP = 'seed-1.testnet.networks.dash.org'
MN_LIST = '34.219.81.129,34.221.42.205,34.208.88.128,54.189.162.193,34.220.124.90,54.201.242.241,54.68.10.46,34.210.81.39,18.237.47.243'
Usage
1. Start thumbor_dash server
thumbor_dash --conf=thumbor.conf
2. Sign image URL
thumbor_dash-url --key="<Requester Identity Key>" --width=<width> --height=<height> --dashauth="requester(<requesterId>):contract(<contractId>):document(<documentType>):field(<avatarUrl>):owner(<ownerId>):updatedAt(<updatedAt>)" --filters="<filters>" <imageURL>
output:
/<signature>/<width>x<height>/dashauth:requester(<requesterId>):contract(<contractId>):document(<documentType>):field(<field>):owner(<ownerId>):updatedAt(<updatedAt>)/filters:format(<format>)/<encodedImageUrl>
3. Thumbor_dash image retrieval URL
http://<thumbor_dash-server>/<signature>/<width>x<height>/dashauth:requester(<requesterId>):contract(<contractId>):document(<documentType>):field(<field>):owner(<ownerId>):updatedAt(<updatedAt>)/filters:format(<format>)/<encodedImageUrl>
Note: If running the server locally, <thumbor_dash-server>
should be localhost:8888
Example
This is a signed thumbor_dash url
. Simply run thumbor_dash
and paste this link in your browser.
http://localhost:8888/htcSn-zhTxpiGTfQlM3h361TXNAqo6hsLUZmdxTmNFI=/1200x800/dashauth:requester(26AxVi5bvYYaC94GmeTmqX21vzsSxar2a4imxSE8ULUQ):contract(D6tjxCZzZobDQztc4S1PK7EDwm4CegLARpiKZn6jQc1R):document(thumbnailField):field(avatarUrl):owner(26AxVi5bvYYaC94GmeTmqX21vzsSxar2a4imxSE8ULUQ):updatedAt(1627948894242)/filters:format(jpeg)/https%3A//github.com/thumbor/thumbor/raw/master/example.jpg
Running thumbor_dash in Docker
This is the fastest way to run thumbor_dash
1. Create a thumbor.env.txt
file containing the environment variables
MIN_WIDTH=1
MIN_HEIGHT=1
MAX_WIDTH=1200
MAX_HEIGHT=800
REQUEST_TIME_LIMIT=1
USAGE_VIOLATION_LIMIT=5
BAN_DURATION=10
USE_CUSTOM_ERROR_HANDLING=True
ALLOW_UNSAFE_URL=False
URL_SIGNER=thumbor_dash.url_signers.base64_hmac_sha256
ERROR_HANDLER_MODULE=thumbor_dash.error_handlers.sentry
SEED_IP=seed-1.testnet.networks.dash.org
MN_LIST=34.219.81.129,34.221.42.205,34.208.88.128,54.189.162.193,34.220.124.90,54.201.242.241,54.68.10.46,34.210.81.39,18.237.47.243
2. Start thumbor_dash server in Docker
docker run -p 80:80 --env-file thumbor.env.txt mayoreee/thumbor_dash
When your environment is not ARM-based, add the option --platform linux/arm64/v8
Note: If running in Docker, <thumbor_dash-server>
in the image request URL should be set to localhost:80
instead of localhost:8888
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file thumbor_dash-0.0.14.tar.gz
.
File metadata
- Download URL: thumbor_dash-0.0.14.tar.gz
- Upload date:
- Size: 21.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25589b27787c366eaa4b4abf94a913ab6b4bc9c273c67e080814292e0b9bb3ad |
|
MD5 | 272121870a43a8157bebcbdd48b83f7b |
|
BLAKE2b-256 | e216bc6a05a602813e8df130833cd009534c7f45081df1db3e5752ac002b326c |
File details
Details for the file thumbor_dash-0.0.14-py3-none-any.whl
.
File metadata
- Download URL: thumbor_dash-0.0.14-py3-none-any.whl
- Upload date:
- Size: 25.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d960398d76f9bcfc3ba6829cf8f4768fda9acb079b11bf1580036e797f50e61 |
|
MD5 | bbc554d4abb31be687c18960d629f0bf |
|
BLAKE2b-256 | 227267079dbda3033a33815d6109e27b39696e2fd18da3a1518fce3243a7810d |