我有一个大文件(超过200 MB)。我需要通过PHP cron job传输它。使用
代码只有一行,其中$localFile是一个已经存在的CSV文件。
Phpseclib
会出现以下错误:
有没有办法可以使用在/app/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php中,尝试分配4133字节时已用尽134217728字节的允许内存大小
PHP cron job
完成这个任务?代码只有一行,其中$localFile是一个已经存在的CSV文件。
$sftp->put('/Import/coupons/coupons_import_test.csv', $localFile, NET_SFTP_LOCAL_FILE);
注意:此操作需要在PHP
生成位于/tmp
文件夹内的文件之后进行,因此传输脚本的时间要考虑在内。
[编辑] 我不打算增加内存限制,因为稍后的文件可能会更大。可以将文件分成多个部分(追加模式)传输,或使用带有PHP Cron的shell脚本也是一个可行的解决方案。
远程服务器上的文件大小为111.4 MB,而本地实际文件的大小要大得多。
[修复后的编辑] 在从版本1.0更改为版本2.0.2后,问题消失了。 我不得不修改代码才能完成放置。
$sftp->put('/Import/coupons/coupons_import.csv', $localFile, $sftp::SOURCE_LOCAL_FILE);
Phpseclib
版本是什么? - revo