.
Project description
Authenticating HTTP proxy for S3. Similar to these:
which might be better for you.
quickstart
Create your config(s):
$ cat > ~/.thr33p/config.py <<EOF
import certifi
http_pool_manager = {
'cert_reqs': 'CERT_REQUIRED',
'ca_certs': certifi.where(),
}
buckets = {
r'~.+-at-bernies': {
'creds': {
'access_key_id': 'EXAMPLE',
'secret_access_key': 'EXAMPLEKEY',
},
}
}
EOF
$ cat > ~/.thr33p/gunicorn.py <<EOF
import os
workers = 1
backlog = 1024
worker_class = 'gevent'
loglevel = 'info'
proc_name = 'thr33p'
def post_fork(server, worker):
import thr33p
config_path = os.path.abspath(os.path.join(__file__, '..', 'config.py'))
thr33p.init(config_path)
EOF
and run it with docker:
$ sudo docker run -p 5000:8000 -v $HOME/.thr33p/:/etc/thr33p/ mayfieldrobotics/thr33p:latest --config=/etc/thr33p/gunicorn.py
$ curl http://127.0.0.1:5000/dead-1.jpeg --header "Host:weekend-at-bernies.s3.amazonaws.com" -vvv
or ghetto dev style:
$ mkvirtualenv thr33p
(thr33p)$ pip install thr33p
(thr33p)$ thr33p -d -p 5000 ~/.thr33p/config.py &
(thr33p)$ curl http://127.0.0.1:5000/dead-1.jpeg --header "Host:weekend-at-bernies.s3.amazonaws.com" -vvv
config
Just a python file like e.g. this:
import os
import certifi
# passed to `urllib3.PoolManager`
http_pool_manager = {
'cert_reqs': 'CERT_REQUIRED',
'ca_certs': certifi.where(),
}
buckets = {
# authenticates buckets matching literal "wake-at-bernies" using temporary iam-role creds
r'wake-at-bernies': {
'creds': None
}
# authenticates buckets matching literal "evening-at-bernies" using env creds
r'evening-at-bernies': {
'creds': {
'access_key_id': os.environ['AWS_ACCESS_KEY_ID'],
'secret_access_key':os.environ['AWS_SECRET_ACCESS_KEY'],
}
}
# authenticates buckets matching regex ".+-at-bernies" using baked creds
r'~.+-at-bernies': {
'creds': {
'access_key_id': 'EXAMPLE',
'secret_access_key': 'EXAMPLEKEY',
},
}
}
dev
Get it:
$ git clone git@github.com:mayfieldrobotics/thr33p.git
$ cd thr33p
$ pip install -e .[tests]
test it:
$ py.test tests/ --cov thr33p.py
and build docker images:
$ sudo docker build -t {your-account}/thr33p .
release
All is well:
$ py.test tests/ --cov thr33p.py
so update __version__ in:
thr33p.py
tag it (travis will publish it to pypi):
$ git commit -am "release v{version}"
$ git tag -a v{version} -m "release v{version}"
$ git push --tags
and register the tag with docker so others can just:
$ sudo docker pull mayfieldrobotics/thr33p:{version}
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
thr33p-0.2.0.tar.gz
(3.3 kB
view details)
File details
Details for the file thr33p-0.2.0.tar.gz
.
File metadata
- Download URL: thr33p-0.2.0.tar.gz
- Upload date:
- Size: 3.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2970f150b30e5b51e6a71c6674affb0a3b05018e84605ef51a74a7988cb8c477 |
|
MD5 | d2d9ffc5e4f07204092b5545db2325ca |
|
BLAKE2b-256 | 40def06bc4fbf999fe9e4da6fd41392a67137c694b1dd744cd963a164806b496 |