apisix 转码

文章讲述了在Apisix中遇到POST请求参数中文为Unicode格式导致无法拦截的问题,通过在functions配置中使用Lua脚本实现Unicode字符到UTF-8的转换,确保参数符合预期并成功拦截特定字符如长城。
摘要由CSDN通过智能技术生成

问题描述:apisix接收到的post请求中请求参数中的中文是unicode格式,导致apisix无法对指定字符进行拦截。

解决:apisix中利用Lua脚本对unicode编码字符进行utf-8转换,再进行拦截。

functions中配置上图函数。

"functions": [
        "return function(conf, ctx) local core = require(\"apisix.core\") local payload, err = core.request.get_body() if not payload then local uri_args, err = core.request.get_uri_args(ctx) if uri_args then payload = core.json.encode(uri_args, true) end end if not ngx.re.match(payload, '[\\u{0080}-\\u{FFFF}]') then payload = (payload:gsub('\\\\u(%x%x%x%x)', function(c) local n = tonumber(c, 16) if n < 0x80 then return string.char(n) elseif n < 0x800 then return string.char(0xC0 + math.floor(n / 64), 0x80 + n % 64) else return string.char(0xE0 + math.floor(n / 4096), 0x80 + math.floor(n / 64) % 64, 0x80 + n % 64) end end))  end local m = ngx.re.match(payload, \"长城\", \"jo\") if m then ngx.exit(401) end  end"
      ]

问题解决!

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FFmpeg是一个开源的跨平台音视频处理工具,可以用于转码、剪辑、合并、分割等多种音视频处理操作。下面是使用FFmpeg进行视频转码的一般步骤: 1. 下载和安装FFmpeg:你可以从FFmpeg官方网站(https://ffmpeg.org/)下载适合你操作系统的版本,并按照官方提供的安装指南进行安装。 2. 打开命令行终端:在Windows系统中,你可以使用cmd或PowerShell;在Linux或Mac系统中,你可以使用终端。 3. 转码命令:使用以下命令进行视频转码: ``` ffmpeg -i input.mp4 output.mp4 ``` 其中,`input.mp4`是你要转码的原始视频文件名,`output.mp4`是转码后生成的目标视频文件名。你可以根据需要修改文件名和路径。 4. 转码参数:你可以根据需要添加一些参数来控制转码过程,例如: - 调整视频分辨率:使用`-s`参数,如`-s 1280x720`表示将视频分辨率调整为1280x720。 - 调整视频比特率:使用`-b:v`参数,如`-b:v 2M`表示将视频比特率调整为2Mbps。 - 调整音频比特率:使用`-b:a`参数,如`-b:a 128k`表示将音频比特率调整为128kbps。 - 转换视频格式:使用`-c:v`参数,如`-c:v libx264`表示将视频编码格式转换为H.264。 5. 执行转码:在命令行中输入转码命令后,按下回车键执行转码操作。你可以在命令行中看到转码的进度和输出信息。 6. 等待转码完成:转码时间根据原始视频的大小和你的电脑性能而定,等待转码完成后,你就可以在指定的输出路径中找到转码后的视频文件了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值