Simple telegram bot that allows upload, download and delete files on S3-compatible storage like AWS S3 and DigitalOcean Spaces.
Built on top of python-telegram-bot.
Minimal sample .env
file:
TELEGRAM_API_TOKEN=0000000000:AAFBxO9f3HELPkYvaiww0LiNcj6DB-R2d2Q
TELEGRAM_USERNAME=durov
AWS_SERVER_PUBLIC_KEY=AKIAQWERTY4BLSCYBT36
AWS_SERVER_SECRET_KEY=7b79ipOp8sDqycbY4dVSd28TQyaNzyT99PpLJrGO
AWS_REGION=us-east-1
BUCKET_NAME=myuploads
Minimal sample .env
file:
TELEGRAM_API_TOKEN=0000000000:AAFBxO9f3HELPkYvaiww0LiNcj6DB-R2d2Q
TELEGRAM_USERNAME=durov
AWS_SERVER_PUBLIC_KEY=DTDINKIYJMAKAUTOEIWV
AWS_SERVER_SECRET_KEY=LBa9U+XUtg7fngBBQuOWXpSgOLULJTk0iaXERS+mlYA
AWS_REGION=ams3
ENDPOINT_URL=https://ams3.digitaloceanspaces.com
CUSTOM_ENDPOINT_URL=https://cdn.example.com
BUCKET_NAME=myuploads
The Spaces API itself does not have support for purging the CDN’s cache, but the DigitalOcean platform API does. The Spaces API was designed to emulate the AWS S3 API so that developers could use it as a drop-in replacement for S3 existing projects. Spaces-specific functionality like the builtin CDN are not part of the S3 API but are support in the DigitalOcean API.
To be able to purge object from the edge caches, you need to obtain a DigitalOcean API token and add to .env
file.
DIGITALOCEAN_TOKEN=77e027c7447f468068a7d4fea41e7149a75a94088082c66fcf555de3977f69d3
Follow instructions to obtain a token, then paste token to .env
file in form of TELEGRAM_API_TOKEN=XXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
.
docker-compose up -d --build
/exist image.jpg
/delete image.jpg
/make_public image.jpg
/make_private image.jpg
/copy_file image.jpg assets/image.jpg
/list PREFIX LIMIT
/get_meta image.jpg
/purge_cache image.jpg
- Upload single file up tp 20MB
- Delete single file
- Copy single file to another path on the same bucket
- Change access level (make file private or public)
- Check if file exist
- List files by prefix
- Get object metadata
- Purge the cache (DigitalOcean Spaces)
- Purge the cache (AWS S3)
cd s3_bucket_bot
pipenv update python-telegram-bot
or
cd s3_bucket_bot
/usr/local/opt/pipenv/bin/pipenv update python-telegram-bot
cd s3_bucket_bot
pip install python-telegram-bot --upgrade
/usr/local/opt/pipenv/bin/pipenv lock --requirements > requirements.txt