68 lines
1.2 KiB
ReStructuredText
68 lines
1.2 KiB
ReStructuredText
=====================
|
|
Simple image uploader
|
|
=====================
|
|
|
|
About
|
|
=====
|
|
|
|
Microservice for uploading all insecure images to Imgur by url.
|
|
|
|
Use Redis as cache backend and metadata storage.
|
|
|
|
Installation
|
|
============
|
|
|
|
Install uwsgi and python3 plugin::
|
|
|
|
sudo apt-get install uwsgi uwsgi-plugin-python3
|
|
|
|
Make virtualenv::
|
|
|
|
cd /opt
|
|
pyvenv-3.4 img_service
|
|
source img_service/bin/activate
|
|
|
|
Install from PyPI::
|
|
|
|
pip install imgtohttps
|
|
|
|
Create config file for app::
|
|
|
|
[uwsgi]
|
|
plugins = python34
|
|
master = true
|
|
enable-threads = true
|
|
processes = 4
|
|
module = imgtohttps.application:app
|
|
virtualenv = /opt/img_service
|
|
chdir = /opt/img_service
|
|
touch-reload = /opt/img_service/reload
|
|
env=APP_SETTINGS=settings.Production
|
|
|
|
Connect to nginx::
|
|
|
|
server {
|
|
listen 127.0.0.1:2100;
|
|
access_log off;
|
|
location / {
|
|
uwsgi_pass unix:/run/uwsgi/app/img_service/socket;
|
|
include uwsgi_params;
|
|
}
|
|
}
|
|
|
|
Usage
|
|
=====
|
|
|
|
Request::
|
|
|
|
curl -X POST -H "Content-Type: application/json" -d '{"url": "http://example.com/image.png"}' http://localhost:2100
|
|
|
|
Response::
|
|
|
|
{"url": "https://i.imgur.com/AxQwu0h.png"}
|
|
|
|
Error::
|
|
|
|
{"error": "Some error message"}
|
|
|