在我的服务器上,我安装了spleeter,这是一个python应用程序。我能够在终端中成功调用spleeter命令来执行所需的命令。
我希望能够通过http get请求执行那些终端命令。
基本上,我有一个android应用程序,应该向我的vps服务器发出一个Get请求,该服务器执行spleeter命令并返回响应。
请如何创建Get端点。我需要指针。
答案 0 :(得分:1)
因此,从最简单的意义上讲,您可以创建一个服务于HTTP端点的python网络应用(使用Django,Flask或raw Python等)。在该网络应用中,您可以执行以下操作,根据GET请求的内容在python函数中运行命令:
import os
def run_command(command):
if command = "ls":
os.system('ls -l')
...
这里唯一的问题是,未经身份验证,这是非常不安全的。除非您在Android和/或Python应用中添加了某种身份验证以验证请求,否则任何能够访问Internet的人都可以调用您的端点并运行这些命令。
即使将自定义HTTP标头中的简单“令牌”从应用程序传递到Web服务器,也总比没有任何东西要好,以验证它是发送命令的合法用户。
这里的另一个问题是Python(或Web服务器)用户必须具有运行该命令的权限,这完全是另一个安全问题。
或者,您可以让端点将通过GET请求收到的命令存储到Redis队列中,然后在本地运行一个单独的脚本来验证命令并在系统上运行它们,因此至少您要分离Web部分来自服务器用户部分。
没有更多细节,很难确切地知道您要完成什么。