我正试图通过集成SFTP和cURL来缩短从SFTP下载文件所需的时间。
我的代码如下:
$host = "192.168.1.1";
$username = "testuser";
$password = "testpass";
$fn = 'testfile.zip';
$remote = "sftp://".$username.":".$password ."@".$host.":22/home/testfolder/saleskits/".$fn;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $remote); #input
curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_SFTP);
curl_exec($curl);
if (!curl_errno($curl)) {
$info = curl_getinfo($curl);
echo 'Took ', $info['total_time'], ' seconds to send a request to ', $info['url'], "'n";
}
else{
echo 'Curl error: ' . curl_error($curl);
}
curl_close($curl);
,输出是"Curl错误:Could not open remote file for reading: Permission denied"。如何获得权限或更改文件的权限?
文档中cURL
URL不包含port。此外,SFTP默认为22,因此在您的示例中它是假的。你可以使用:
$remote = "sftp://".$username.":".$password ."@".$host."/home/testfolder/saleskits/".$fn;