gpt4 book ai didi

javascript - 在 Flask 服务器中自动重新加载 FTP 内容

转载 作者:行者123 更新时间:2023-11-28 04:09:32 25 4
gpt4 key购买 nike

我正在使用 Flask 服务器从 FTP 服务器提取数据并提供服务(视频)。当相机将新视频发送到远程 FTP 服务器时,相机会对 Flask 服务器说“OK”。 Flask 服务器从 FTP 中提取新视频。我需要的是当 Flask 运行 get_video 函数时,还刷新 html 内容,以便用户看到新视频。

请注意,相机和用户是不同的客户端,它们都连接到同一 Flask 服务器。

from flask import Flask, Response, request, render_template, g, redirect
import ftplib
app = Flask(__name__)

def get_video():
session = ftplib.FTP("****", "*****", "****")
session.retrbinary("RETR try.mp4", open("static/sc.mp4", "wb+").write)

@app.route('/')
def hello():
get_video()
return '''
<!doctype html>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<title>Files</title>
<h1>VIDEO</h1>
<video width="320" height="240" id="VideoWindow" controls>
<source src="static/sc.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
</form>
<form action="/shoot_request">
<input type="submit" name="shoot" value="GetNew"/>
</form>
<script type='text/javascript'>
$(document).ready(function () {
setInterval(function () {
$('#VideoWindow').load(window.location.href + '#VideoWindow');
}, 5000);
});
</script>
'''
@app.after_request # This did not work
def add_header(response):
response.cache_control.max_age = 10
return response

最佳答案

我创建了一个标志文件。相机和 html 脚本定期从服务器请求文件的值。如果它是特定值,摄像机开始录制并通过 FTP 发送它,然后服务器将标志的值更改为另一个值。如果 html 脚本获取该值,它会重新加载自身,并且服务器将标志的值更改为默认值。

我还在视频链接的末尾添加了随机时间戳例如:

"<video src="dynamic/sc.mp4?t=%d" type="video/mp4" controls> </video>" % random_value

因为浏览器不想重新加载视频,因为它的路径没有改变。

无论如何,如果有人需要这样的东西,可以使用这个方法。虽然不是 100% 有效,但确实有效。

问候

苏阿特

关于javascript - 在 Flask 服务器中自动重新加载 FTP 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46419268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com