Статические файлы все еще обслуживаются из файловой системы вместо AWS-S3 во Flask - PullRequest
0 голосов
/ 12 мая 2018

У меня есть скрипт, который генерирует изображение.Это изображение сохраняется в каталоге внутри статической папки моей ОС.image.png сохраняется в:

-static
    -images
        -monkeys
            - image.png

Функция конечной точки сервера должна загружать изображение в мое S3-хранилище и возвращать этот статический файл из моего хранилища, а не из файловой системы моей ОС.

По какой-то причине это не работает.Загрузка изображений работает нормально, я вижу изображение в корзине, просто не могу обработать статическое изображение, я получаю сообщение об ошибке: «Запрошенный URL-адрес не найден на сервере. Если вы ввели URL-адрес вручную, пожалуйста,Проверьте правильность написания и повторите попытку.".По сути, он не может найти изображение.

Я использую колбу S3 следующим образом:

app = Flask(__name__)
app.config['FLASKS3_BUCKET_NAME'] = os.environ.get('S3_BUCKET_NAMEING')
app.config['USE_S3_DEBUG'] = True
s3 = FlaskS3(app)

Моя конечная точка для обслуживания статического изображения:

@app.route('/image/monkey/<address>', methods = ['GET'])
def monkey_image(address):
        # There is some code here that generates that image and places it 
        # inside the monkeys folder. I did not include it because
        # it is not relevant to the question 
        image = open(image_path, 'rb')
        S3_path = 'images/monkeysS3/' + monkey_image_name
        upload_image_to_s3_bucket(image,'static/' + S3_path)
        return redirect(flask_url_for('static', filename=S3_path))

Так что последние 2 строки имеют значение.

upload_image_to_s3 работает.Проблема исходит от

return redirect(flask_url_for('static', filename=path)).

Он просто не может найти изображение внутри моего S3-контейнера.Это касается и разработки, и производства.Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...