22 lines
820 B
Python
22 lines
820 B
Python
from urlparse import urljoin
|
|
|
|
from flask import url_for
|
|
|
|
|
|
def get_blob_download_uri_getter(context, url_scheme_and_hostname):
|
|
"""
|
|
Returns a function with context to later generate the uri for a download blob
|
|
:param context: Flask RequestContext
|
|
:param url_scheme_and_hostname: URLSchemeAndHostname class instance
|
|
:return: function (repository_and_namespace, checksum) -> uri
|
|
"""
|
|
def create_uri(repository_and_namespace, checksum):
|
|
"""
|
|
Creates a uri for a download blob from a repository, namespace, and checksum from earlier context
|
|
"""
|
|
with context:
|
|
relative_layer_url = url_for('v2.download_blob', repository=repository_and_namespace,
|
|
digest=checksum)
|
|
return urljoin(url_scheme_and_hostname.get_url(), relative_layer_url)
|
|
|
|
return create_uri
|