我正在尝试使用curl批量上传到YouTube,遵循此处的API规范; 简而言之,它需要一个多部分POST请求,其中包含XML格式的元数据和Content-Type of application/atom+xml; charset=UTF-8,然后是视频数据本身.
我当前的命令行(从upl.xml获取元数据和upl.mkv中的视频)看起来像这样:
curl -s -F "file=@upl.xml" -F "file=@upl.mkv" -H 'GData-Version: 2' -H 'Authorization: GoogleLogin auth=<AUTH>' -H 'Slug: upl.mkv' -H 'X-GData-Key: key=<KEY>' http://uploads.gdata.youtube.com/feeds/api/users/default/uploads
Run Code Online (Sandbox Code Playgroud)
当我检查发送的实际请求时--trace,看起来两个文件都以正确的顺序发送,但元数据的Content-Type设置为application/octet-stream; 上传按预期完成,但YouTube拒绝处理视频.
如果我试图提交upl.xml用--data,--data-ascii,--form-string等我只是得到其它错误的分类,这使我相信它的下跌不正确的内容类型.如果我忽略元数据并只发送视频文件它工作正常,但不幸的是,这并没有解决我的问题.
我在这里遗漏了什么,如果没有,是否可以在不破坏libcurl的情况下做到这一点?
我有一个函数,用于用几个字符或数字替换一些单词。我string.gsub()以这种方式使用函数:
string.gsub(line, "[0-9%a%s/,-]+", "\t")
Run Code Online (Sandbox Code Playgroud)
这对于包含数字、字母、空格,、 和 的字符串非常有效/。我也想替换像(和这样的括号)。但是简单地插入()到我的模式中是行不通的。我也尝试过%(,%)但没有成功。如何在string.gsub()方法中使用模式替换 Lua 中的括号?