Загрузите файл изображения в mongodb на сервере heroku через приложение flask - PullRequest
1 голос
/ 18 января 2020

Я пытаюсь загрузить изображение в атласе mongodb через мое приложение flask, когда я запускаю тот же код на локальном хосте, он работает нормально, и в mongodb "fs.files" & "fs.chunks создаются 2 коллекции "и могу отображать в своем браузере. Я размещен на сервере heroku и могу вставлять коллекции объектов, но не смог загрузить изображение. Ниже приведена ошибка

sock = client at = код предупреждения = H27 desc = метод "Клиентский запрос прерван" = путь POST = "/ upload" host = testsuheal.herokuapp.com request_id = 647a0723-2a35-42f9- 8a26-e60a9eb09fd7 fwd = "157.45.29.249" dyno = web.1 connect = 0ms service = 3532ms status = 499 байтов = 0 protocol = https 2020-01-18T07: 45: 41.295293 + 00: 00 app [web.1]: 10.9.158.174 - - [18 / Jan / 2020: 07: 45: 41 +0000] "POST / upload HTTP / 1.1" 400 192 "https://testsuheal.herokuapp.com/" "Mozilla / 5.0 (Windows NT) 10.0; Win64; x64) AppleWebKit / 537,36 (K HTML, как у Gecko) Chrome / 79.0.3945.117 Safari / 537.36 "

from flask import Flask, jsonify, render_template, request
from flask_pymongo import PyMongo
from flask.json import JSONEncoder
from pymongo import MongoClient
import json,os
from bson import ObjectId
from werkzeug.utils import secure_filename
from random import random
from datetime import datetime
from datetime import date
app = Flask(__name__)

APP_ROOT = os.path.dirname(os.path.abspath(__file__))
app.config['MONGO_URI']='mongodb+srv://xxx:xxx@cluster0-52qhc.mongodb.net/test?retryWrites=true'
mongo = PyMongo(app)
appender=random()

@app.route('/')
def index():    
    return render_template('index.html')


@app.route('/upload', methods=['POST'])
def upload(): 
    photoFilename = request.files['file']   
    mongo.save_file(photoFilename.filename+str(appender),photoFilename)      
    return jsonify({'result':photoFilename.filename}) 

@app.route('/file/<filename>') 
def file(filename):    
    return mongo.send_file(filename)


if __name__ == '__main__':
    # Threaded option to enable multiple instances for multiple user access support
    app.run(threaded=True, port=5000)

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