ftp_nlist()在GAE中不起作用

时间:2016-03-25 11:27:51

标签: php google-app-engine ftp google-cloud-platform

PHP GAE中的ftp_nlist()有时无法正常工作。

我有一个计划任务(cron),它会定期检查远程FTP服务器是否有新事件并下载文件。是的,我使用的是ftp_pasv()。至少我想知道导致此错误的是什么,因为返回的错误是"未知"。

我一直看到的错误:

警告:ftp_nlist():bind()失败:未知错误4294967295(-1)在第28行的/base/data/home/apps/****/ftp.php中输入代码

这是代码,在这里输入代码

$ftp_server = '****';
$connection = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
if(ftp_login($connection, '***', '****')) {
    ftp_pasv($connection, true);
    $filesList = ftp_nlist($connection, '.');
    print "<pre>"; print_r($filesList);
    foreach($filesList as $f) {
        $files = ftp_nlist($connection, $f);
        print "<pre>"; print_r($files);
    }
    ftp_close($connection);
} else {
    die('FTP Connection Failed');
}

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

你可以在GAE上使用这个命令,问题是ftp_nlist试图写入GAE的本地存储,这是不允许的。您可以尝试通过设置temp dir环境变量来通知它在Google云端存储中使用临时目录:

putenv(‘TMPDIR=gs://bucket_name_to_write_temporary_files_to/’); //you can also declare a subdirectory if you want.

在尝试任何ftp操作之前调用此方法。