我有一个 REST API,我想用可重播的流事件日志来增强它。我想知道是否有什么好的方法可以将Kafka开放给这种“公共”消费。Kafka 本质上提供了我正在计划的所有消费者 API,所以最好不要重新发明轮子。
API用户注册API密钥,因此可以进行一些身份验证/权限管理。但是,我无法控制用户是否尝试恶意行为。
我找到了这个相关的 StackOverflow 帖子,但它已经过时并且没有任何答案。
我有以下PHP代码,我在这里找到:
function download_xml()
{
$url = 'http://tv.sygko.net/tv.xml';
$ch = curl_init($url);
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
echo("curl_exec was succesful"); //This never gets called
curl_close($ch);
return $data;
}
$my_file = 'tvdata.xml';
$handle = fopen($my_file, 'w');
$data = download_xml();
fwrite($handle, $data);
Run Code Online (Sandbox Code Playgroud)
我要做的是在指定的URL下载xml并将其保存到磁盘.然而,一旦大约80%完成停止,并且在echo通话后从未到达curl_exec通话.我不确定为什么,但我相信这是因为内存不足.因此,我想问一下,每次下载4kb时,是否可以将curl写入文件.如果这是不可能的,有人知道一种方法来获取存储在url下的xml文件下载并使用php存储在我的磁盘上吗?
非常感谢,BEN.
编辑:这是现在的代码,它不起作用.它将数据写入文件,但仍然只占文档的80%左右.也许不是因为它超过记忆而是其他原因?我真的不敢相信将文件从URL复制到光盘很难...
<?
$url = 'http://tv.sygko.net/tv.xml';
$my_file = fopen('tvdata.xml', 'w');
$ch = curl_init($url);
$timeout = 300;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FILE, $my_file); …Run Code Online (Sandbox Code Playgroud)