Skip to content

Commit

Permalink
Split upload and get domains
Browse files Browse the repository at this point in the history
  • Loading branch information
kroman0 committed Jul 7, 2016
1 parent 5f2dc40 commit 34205f5
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 7 deletions.
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
.. image:: https://coveralls.io/repos/github/openprocurement/openprocurement.documentservice/badge.svg?branch=master
:target: https://coveralls.io/github/openprocurement/openprocurement.documentservice?branch=master

bin/docservicepython -c "from base64 import b64encode; from pyelliptic import ECC; k=ECC(curve='secp384r1'); print 'private:', b64encode(k.get_privkey()), '\npublic:', b64encode(k.get_pubkey())"
python -c "from libnacl.sign import Signer; k=Signer(); print 'private:', k.hex_seed(), '\npublic:', k.hex_vk()"
3 changes: 3 additions & 0 deletions openprocurement/documentservice/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,9 @@ def main(global_config, **settings):
keyring[key[:8]] = Verifier(key)
config.registry.apikey = key[:8]

config.registry.upload_host = settings.get('upload_host')
config.registry.get_host = settings.get('get_host')

# search for storage
storage = settings.get('storage')
for entry_point in iter_entry_points('openprocurement.documentservice.plugins', storage):
Expand Down
12 changes: 6 additions & 6 deletions openprocurement/documentservice/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ def register_view(request):
md5 = request.POST['hash']
uuid = request.registry.storage.register(md5)
signature = quote(b64encode(request.registry.signer.signature(uuid)))
upload_url = request.route_url('upload_file', doc_id=uuid, _query={'Signature': signature, 'KeyID': request.registry.dockey})
upload_url = request.route_url('upload_file', doc_id=uuid, _query={'Signature': signature, 'KeyID': request.registry.dockey}, _host=request.registry.upload_host or request.domain)
signature = quote(b64encode(request.registry.signer.signature("{}\0{}".format(uuid, md5))))
url = request.route_url('get', doc_id=uuid, _query={'Signature': signature, 'KeyID': request.registry.dockey})
url = request.route_url('get', doc_id=uuid, _query={'Signature': signature, 'KeyID': request.registry.dockey}, _host=request.registry.get_host or request.domain)
request.response.status = 201
request.response.headers['Location'] = upload_url
return {'data': {'url': url, 'hash': md5}, 'upload_url': upload_url}
Expand All @@ -38,9 +38,9 @@ def upload_view(request):
uuid, md5, content_type, filename = request.registry.storage.upload(post_file)
expires = int(time()) + EXPIRES
signature = quote(b64encode(request.registry.signer.signature("{}\0{}".format(uuid, md5))))
url = request.route_url('get', doc_id=uuid, _query={'Signature': signature, 'KeyID': request.registry.dockey})
url = request.route_url('get', doc_id=uuid, _query={'Signature': signature, 'KeyID': request.registry.dockey}, _host=request.registry.get_host or request.domain)
signature = quote(b64encode(request.registry.signer.signature("{}\0{}".format(uuid, expires))))
get_url = request.route_url('get', doc_id=uuid, _query={'Signature': signature, 'Expires': expires, 'KeyID': request.registry.dockey})
get_url = request.route_url('get', doc_id=uuid, _query={'Signature': signature, 'Expires': expires, 'KeyID': request.registry.dockey}, _host=request.registry.get_host or request.domain)
request.response.headers['Location'] = get_url
return {'data': {'url': url, 'hash': md5, 'format': content_type, 'title': filename}, 'get_url': get_url}

Expand Down Expand Up @@ -109,9 +109,9 @@ def upload_file_view(request):
}
expires = int(time()) + EXPIRES
signature = quote(b64encode(request.registry.signer.signature("{}\0{}".format(uuid, md5))))
url = request.route_url('get', doc_id=uuid, _query={'Signature': signature, 'KeyID': request.registry.dockey})
url = request.route_url('get', doc_id=uuid, _query={'Signature': signature, 'KeyID': request.registry.dockey}, _host=request.registry.get_host or request.domain)
signature = quote(b64encode(request.registry.signer.signature("{}\0{}".format(uuid, expires))))
get_url = request.route_url('get', doc_id=uuid, _query={'Signature': signature, 'Expires': expires, 'KeyID': request.registry.dockey})
get_url = request.route_url('get', doc_id=uuid, _query={'Signature': signature, 'Expires': expires, 'KeyID': request.registry.dockey}, _host=request.registry.get_host or request.domain)
return {'data': {'url': url, 'hash': md5, 'format': content_type, 'title': filename}, 'get_url': get_url}


Expand Down

0 comments on commit 34205f5

Please sign in to comment.