首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >瓶中的Fileupload /ShinyProxy

瓶中的Fileupload /ShinyProxy
EN

Stack Overflow用户
提问于 2019-12-23 14:53:14
回答 1查看 231关注 0票数 0

在我的Flask应用程序中,通过表单/POST请求上传文件可以在直接执行应用程序时正常工作,但是当Shinyproxy托管Flask应用程序时却会失败。我跟踪了这个问题,直到Shinyproxy没有正确地执行表单POST请求:

app.py:

代码语言:javascript
复制
from flask import Flask, request, render_template    
app = Flask(__name__, static_url_path="/static")

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'GET':
        return render_template('index.html')
    else:
        return "POST request received"    
app.run(host='0.0.0.0', port=3838)

index.html:

代码语言:javascript
复制
<html>
<body>
    <form method=post enctype=multipart/form-data>
        <input type="file" name="file"/>
        <input type = "submit" value="Upload">  
    </form>  
</body>
</html>

单击"Upload“后返回GET和POST请求:

代码语言:javascript
复制
10.81.71.42 - - [23/Dec/2019 14:37:28] "GET / HTTP/1.1" 200 -
10.81.71.42 - - [23/Dec/2019 14:37:30] "POST / HTTP/1.1" 200 -

在Shinyproxy中运行完全相同的应用程序。

Dockerfile

代码语言:javascript
复制
FROM python:3
RUN pip install flask werkzeug
RUN mkdir /templates
COPY ["index.html", "/templates"]
COPY app.py /
EXPOSE 3838
CMD ["python", "app.py"]

返回相同的内容,但不包含POST行:

代码语言:javascript
复制
172.17.0.1 - - [23/Dec/2019 14:39:42] "GET / HTTP/1.1" 200 -

shinyproxy.log说

代码语言:javascript
复制
2019-12-23 14:42:33.682 DEBUG 17832 --- [XNIO-2 I/O-1] io.undertow.server.handlers.proxy        : Sent request ClientRequest{path='/', method=POST, protocol=HTTP/1.1} to target 10.81.71.42 for exchange HttpServerExchange{ POST /proxy_endp
oint/b933863e-9fad-4d00-a657-034ede313e34/ request {Accept=[text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9], Accept-Language=[de-DE,de;q=0.9,en-US;q=0.8,en;q=0.
7], Cache-Control=[max-age=0], Accept-Encoding=[gzip, deflate], Origin=[http://192.168.76.81:8080], User-Agent=[Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36], Connectio
n=[keep-alive], Content-Length=[188], Content-Type=[multipart/form-data; boundary=----WebKitFormBoundarymPv6WtCTpGZQqRbF], Cookie=[JSESSIONID=CZxjGBM7BW597wysbBABgNWZL2x7qvsfujWVERgR], Referer=[http://192.168.76.81:8080/app_direct/flask_t
est/], Upgrade-Insecure-Requests=[1], Host=[192.168.76.81:8080]} response {Expires=[0], Cache-Control=[no-cache, no-store, max-age=0, must-revalidate], X-XSS-Protection=[1; mode=block], X-Content-Type-Options=[nosniff], Pragma=[no-cache]}
}                                                                                                                                                                                                                                             
2019-12-23 14:42:33.683 DEBUG 17832 --- [XNIO-2 I/O-1] io.undertow.request.io                   : Fixed length stream closed with with 188 bytes remaining                                                                                    
2019-12-23 14:42:33.683 DEBUG 17832 --- [XNIO-2 I/O-1] i.u.client.http.HttpClientExchange       : request terminated for request to localhost/127.0.0.1:20000 /                                                                               
2019-12-23 14:42:33.683 ERROR 17832 --- [XNIO-2 I/O-1] io.undertow.proxy                        : UT005028: Proxy request to /proxy_endpoint/b933863e-9fad-4d00-a657-034ede313e34/ failed                                                     

io.undertow.server.TruncatedResponseException: null                                             

有没有人知道我如何在shinyproxy (或其他)中托管这个应用程序?我希望使并发用户能够上传文件,而不使用相同的停靠容器/不相互干扰。

谢谢和亲切的问候

寿沙科

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-09 13:49:09

这是Shinyproxy 2.2.0和2.3.0中的一个bug。恢复到ShinyProxy 2.1.0解决了这个问题,请参阅https://github.com/openanalytics/shinyproxy/issues/184

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59457270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档