Exemple #1
0
async def get_blobs(name, digest, request: Request):
    logger.debug(request.headers)
    registry = conf.get_registry_dir()
    file_name = os.path.join(registry, "blobs", digest)
    response = FileResponse(file_name)
    response.headers["Docker-Distribution-Api-Version"] = "registry/2.0"
    response.headers["Docker-Content-Digest"] = digest
    response.headers["Content-Type"] = "application/octet-stream"
    response.headers["Content-Length"] = str(os.stat(file_name).st_size)
    response.status_code = status.HTTP_200_OK
    logger.debug(response.headers)
    return response
Exemple #2
0
async def get_manifests(name, reference, request: Request):
    logger.debug(request.headers)
    registry = conf.get_registry_dir()
    file_name = os.path.join(registry, "manifests", name, reference)
    with open(file_name, "rb") as f:
        chunk = f.read()
    sha256 = hashlib.sha256(chunk).hexdigest()
    response = FileResponse(file_name)
    response.headers["Docker-Distribution-Api-Version"] = "registry/2.0"
    response.headers["Docker-Content-Digest"] = "sha256:{}".format(sha256)
    response.headers[
        "Content-Type"] = "application/vnd.docker.distribution.manifest.v2+json"
    response.headers["Content-Length"] = str(len(chunk))
    response.status_code = status.HTTP_200_OK
    logger.debug(response.headers)
    return response