У меня есть скрипт, который генерирует изображение.Это изображение сохраняется в каталоге внутри статической папки моей ОС.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-контейнера.Это касается и разработки, и производства.Спасибо