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
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