Try to use a 301 redirect to download directly from s3. Allow the s3 and userfiles to run without internet access.
This commit is contained in:
parent
82229fd8c8
commit
bf85013ef6
4 changed files with 50 additions and 14 deletions
|
@ -1,7 +1,7 @@
|
|||
import logging
|
||||
import json
|
||||
|
||||
from flask import make_response, request, session, Response, abort
|
||||
from flask import make_response, request, session, Response, abort, redirect
|
||||
from functools import wraps
|
||||
from datetime import datetime
|
||||
from time import time
|
||||
|
@ -80,9 +80,12 @@ def set_cache_headers(f):
|
|||
def get_image_layer(namespace, repository, image_id, headers):
|
||||
permission = ReadRepositoryPermission(namespace, repository)
|
||||
if permission.can() or model.repository_is_public(namespace, repository):
|
||||
path = store.image_layer_path(namespace, repository, image_id)
|
||||
direct_download_url = store.get_direct_download_url(path)
|
||||
if direct_download_url:
|
||||
return redirect(direct_download_url)
|
||||
try:
|
||||
return Response(store.stream_read(store.image_layer_path(
|
||||
namespace, repository, image_id)), headers=headers)
|
||||
return Response(store.stream_read(path), headers=headers)
|
||||
except IOError:
|
||||
abort(404) # 'Image not found', 404)
|
||||
|
||||
|
|
Reference in a new issue