我正在查看这个,我看到了在 API 中上传的功能?https://fastapi.tiangolo.com/tutorial/request-files/没有选择 dl .. 我错过了什么吗?我希望为文件下载站点创建一个 api。我应该使用不同的api吗?
from typing import List
from fastapi import FastAPI, Query
app = FastAPI()
PATH "some/path"
@app.get("/shows/")
def get_items(q: List[str] = Query(None)):
'''
Pass path to function.
Returns folders and files.
'''
results = {}
query_items = {"q": q}
entry = PATH + "/".join(query_items["q"]) + "/"
dirs = os.listdir(entry)
results["folders"] = [val for val in dirs if os.path.isdir(entry+val)]
results["files"] = [val for val in dirs if os.path.isfile(entry+val)]
results["path_vars"] = query_items["q"]
return results
Run Code Online (Sandbox Code Playgroud)
这是python获取路径的文件和目录的示例代码,您可以将路径作为列表返回,并在循环中添加新条目以深入了解文件树。传递文件名应该会触发下载功能,但我似乎无法启动下载功能。
我的记录器看起来像这样:
log_config = {
"version": 1,
"disable_existing_loggers": True,
"formatters": {
"default": {
"()": "uvicorn.logging.DefaultFormatter",
"fmt": "%(asctime)s::%(levelname)s::%(name)s::%(filename)s::%(funcName)s::%(message)s",
"datefmt": "%Y-%m-%dT%H:%M:%S%z",
"use_colors": False,
},
"access": {
"()": "uvicorn.logging.AccessFormatter",
"datefmt": "%Y-%m-%dT%H:%M:%S%z",
"fmt": '%(asctime)s::%(levelprefix)s %(client_addr)s - "%(request_line)s" %(msecs)d %(status_code)s',
"use_colors": False,
},
},
"handlers":
{
"default":
{
"formatter": "default",
"class": 'logging.FileHandler',
"filename": CONFIG[SECTION]["default"]
},
"access":
{
"formatter": "access",
"class": 'logging.FileHandler',
"filename": CONFIG[SECTION]["access"]
},
},
"loggers":
{
"uvicorn": {"handlers": ["default"], "level": "INFO", "propagate": False},
"uvicorn.access": {"handlers": ["access"], "level": "INFO", "propagate": False},
}
}
Run Code Online (Sandbox Code Playgroud)
启动配置:
uvicorn.run(
app="app.main:app", …Run Code Online (Sandbox Code Playgroud) 我有一个基本设置的 python 项目,如下所示:
imptest.py
utils/something.py
utils/other.py
Run Code Online (Sandbox Code Playgroud)
以下是脚本中的内容:
#!./venv/bin/python
import utils.something as something
import utils.other as other
def main():
"""
Main function.
"""
something.do_something()
other.do_other()
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
#import other
def do_something():
print("I am doing something")
def main():
"""
Main function
"""
do_something()
#other.do_other()
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
def do_other():
print("do other thing!")
def main():
"""
Main function
"""
do_other()
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
imptest.py 是偶尔运行和调用 utils 函数的主文件。
正如你所看到的,我在“something.py”中注释了一些我导入“other”模块进行测试的行。
但是当我想测试 something.py 中的某些功能时,我必须运行文件 something.py 并取消注释导入行。 …
我的代码的相关部分看起来像这样:
@directory_router.get("/youtube-dl/{relative_path:path}", tags=["directory"])
def youtube_dl(relative_path, url, name=""):
"""
Download
"""
relative_path, _ = set_path(relative_path)
logger.info(f"{DATA_PATH}{relative_path}")
if name:
name = f"{DATA_PATH}{relative_path}/{name}.%(ext)s"
else:
name = f"{DATA_PATH}{relative_path}/%(title)s.%(ext)s"
ydl_opts = {
"outtmpl": name,
# "quiet": True
"logger": logger,
"progress_hooks": [yt_dlp_hook],
# "force-overwrites": True
}
with yt.YoutubeDL(ydl_opts) as ydl:
try:
ydl.download([url])
except Exception as exp:
logger.info(exp)
return str(exp)
Run Code Online (Sandbox Code Playgroud)
我正在使用此 webhook/端点来允许角度应用程序接受 url/名称输入并将文件下载到文件夹。我能够 logger.info .. 等输出 yt_dlp_hook 的值,如下所示:
def yt_dlp_hook(download):
"""
download Hook
Args:
download (_type_): _description_
"""
global TMP_KEYS
if download.keys() != TMP_KEYS:
logger.info(f'Status: {download["status"]}')
logger.info(f'Dict …Run Code Online (Sandbox Code Playgroud) 我最近使用这些说明在Windows上设置了filebeat
https://www.elastic.co/downloads/beats/filebeat
但它迫使我保持cmd提示打开运行命令
filebeat.exe -c filebeat.yml
我想知道是否有办法将其作为后台进程运行?
谢谢.
我试图从3个服务器的kafka集群读入logstash,以便将其写入syslog服务器.我已写入syslog,但即使在logstash文档站点上,我也无法找到如何从kafka读入logstash.
Logtash版本:5.2.2 Kafka版本:0.10.2 scala版本:2_11
我去看了api版本,LOGSTASH_CORE_PLUGIN_API ="2.1.12"
这是我尝试使用的配置
input {
# file
# {
# path => "/opt/logstash/NOTICE.TXT"
#
# #DEBUG below
# #path => "../fsdfdstt.log"
# start_position => "beginning"
# sincedb_path => "/dev/null"
# }
kafka
{
zk_connect => "localhost:2181"
topic_id => "kafkatest2"
}
}
output
{
syslog
{
host => ["targetserver"]
port => port#
}
}
Run Code Online (Sandbox Code Playgroud)
但这是我得到的错误......
[2017-03-15T10:24:17,000][ERROR][logstash.inputs.kafka ] Unknown setting 'zk_connect' for kafka
[2017-03-15T10:24:17,008][ERROR][logstash.inputs.kafka ] Unknown setting 'topic_id' for kafka
[2017-03-15T10:24:17,015][ERROR][logstash.agent ] Cannot load an invalid configuration {:reason=>"Something …Run Code Online (Sandbox Code Playgroud) 我按照此文档设置了单个用户: https: //fastapi.tiangolo.com/advanced/security/http-basic-auth/
但我只提示输入该端点“/users/me”的用户/通行证。
如何确保所有端点都经过身份验证?
因此,我有一个弹性搜索索引,并且正在向其发送带有时间戳的文档。我想知道是否有一种方法可以根据时间戳提取最后一个文档。即说要给弹性最后一次给我文档。
谢谢。
我正在尝试使用 fastapi 创建一个遍历 api 的文件夹。假设我有这样的终点:
@root_router.get("/path/{path}")
def take_path(path):
logger.info("test %s", path)
return path
Run Code Online (Sandbox Code Playgroud)
如果我对浏览器执行并调用“URL:PORT/path/path”
它返回“路径”,很简单。但如果我尝试“URL:PORT/path/path/path”,代码甚至不会到达记录器。我认为这是有道理的,因为 API 不存在该端点。但它确实存在于我的服务器上。我已经想出了其他方法来做到这一点,即将路径作为参数数组传递,并用 / 分隔符在代码中重新构建,但是在 url 中传递参数感觉有点笨拙,如果我可以像下面一样移动 url 中的路径我的服务器,那将是理想的。这可行吗?
谢谢。
我在redhat 7.5服务器上安装了nginx 1.12,它也有LUA 5.1.4我下载了lua-nginx-module-0.10.13 tar ball并将它放在/ etc/nginx/modules下,但是我无法运行nginx使用LUA auth文件.
我在/ opt/openresty /下也有开放性.
http://openresty.org/en/installation.html 我在这里遵循"make"方法.
不幸的是,这台服务器无法访问互联网,所以我无法从git安装东西,这大大减缓了这一点.我不知道如何在这里添加模块.任何评论都会有所帮助.
这是我的nginx配置看起来像..
server
{
listen 80;
access_log /opt/elk/logs/nginx/access.log main;
#auth_basic "admin";
#auth_basic_user_file "/etc/nginx/passwd";
client_max_body_size 100M;
location /
{
proxy_pass http://127.0.0.1:9200;
keepalive_timeout 300s;
#auth_basic on;
auth_basic "admin";
auth_basic_user_file "/etc/nginx/passwd";
access_by_lua_file '/etc/nginx/authorized.lua';
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html
{
root /usr/share/nginx/html;
}
}
Run Code Online (Sandbox Code Playgroud)
lua_access_file导致错误
nginx:[emerg] unknown指令"access_by_lua_file"我是否需要在配置中定义一些"include"来摆脱这个?
谢谢.
我在这样的函数中运行 FastApi 和 guvicorn:
if __name__ == "__main__":
uvicorn.run(
app="app.main:app",
host="HOSTIP",
port=8000,
reload=True,
# log_config=None,
log_config=log_config,
log_level="info"
)
Run Code Online (Sandbox Code Playgroud)
这就是我的 log_config 的样子:
log_config = {
"version": 1,
"disable_existing_loggers": True,
"formatters": {
"default": {
"()": "uvicorn.logging.DefaultFormatter",
"fmt": "%(asctime)s::%(levelname)s::%(name)s::%(filename)s::%(funcName)s - %(message)s",
"use_colors": None,
},
"access": {
"()": "uvicorn.logging.AccessFormatter",
"fmt": '%(asctime)s::%(levelprefix)s %(client_addr)s - "%(request_line)s" %(status_code)s',
},
},
"handlers":
{
"default":
{
"formatter": "default",
# "class": 'logging.NullHandler',
"class": 'logging.FileHandler',
"filename": CONFIG[SECTION]["default"]
},
"error":
{
"formatter": "default",
# "class": 'logging.NullHandler',
"class": 'logging.FileHandler',
"filename": CONFIG[SECTION]["error"]
},
"access": …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ffmpeg在Ubuntu 18.10上将某些mkvs转换为mp4,而我不断收到以下错误。阿比的想法?
我已经安装了ffmpeg并安装了:
sudo apt install -y libopus-dev libmp3lame-dev libfdk-aac-dev libvpx-dev libx264-dev yasm libass-dev libtheora-dev libvorbis-dev mercurial cmake
Run Code Online (Sandbox Code Playgroud)
我用输出运行的命令:
ffmpeg -i 'video.mkv' -codec copy 'video.mp4' -strict -2 -y
ffmpeg version 4.0.2-2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 8 (Ubuntu 8.2.0-7ubuntu1)
configuration: --prefix=/usr --extra-version=2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg …Run Code Online (Sandbox Code Playgroud)