Dosyaların PHP FTP Upload binlerce

4 Cevap php

Ben bir uzak sunucuya yerel bir sunucudan dosya taşımak için kullanılan küçük bir FTP sınıfı yazdık. Bu uzak sunucudaki dosyaların bir dizi yerel dosyaları bir dizi kontrol ederek yapar. Dosya uzak sunucuda varsa, bunu yüklemeden rahatsız olmaz.

Komut dosyaları küçük miktarlarda için çalışıyor, ama ben yerel sunucu aktarmak gibi birçok + 3000 gibi görüntü dosyaları olabilir fark ettik, bu komut flop ve sadece 100 ya da öylesine aktarmak için neden gibi görünüyor.

Nasıl görüntü aktarım dosyaları potansiyel binlerce işlemek için komut dosyası değiştirebilirsiniz?

4 Cevap

Daha sık cron'u çalıştırın ve çalışma başına 80 görüntülerin bir yükleme için komut sınırlamak.

Ne olabilirdi bu komut dosyası web sunucusu tarafından durdurulacak olursa (bu php komut için geçerli değildir) komut dosyası çalıştırmak için çok uzun sürebilir olmasıdır. Bunu düzeltmek için php ayarlarını değiştirebilirsiniz, ancak (tarayıcı sonunda da zaman aşımına çünkü) çok iyi ölçek değildir. Belki komut (cli php denir) gelen komut çalışan çalışacaktır.

Eğer zaten bir şey uyguluyor gibi bana geliyor. Her iki sunucularının denetimi varsa rsync (linux için) bir göz olmalıdır.

Sorun php veya tarayıcı zaman aşımı ile Eğer bir dosyayı (aşağıda örnek) oluşturmak ve bunu cron veya bir tarayıcıdan çağırabilirsiniz.

<?
echo "Running cli syncfiles.php";
system("&php syncfiles.php"); // & pushes file to background processing on linux 
?>

Ftp bağlantılarınızı daraltma, ya da zaman x miktar içinde eşzamanlı yüklenenler / indirme daraltma çünkü bir sorun yaşıyorsanız, o zaman muhtemelen koduna sayaçlarını çeşit atabilir.

<?
$counter=0;
for($i=0;$i<$numftpfiles;$i++)
{
   syncfile($i); // this represents your sync code
   usleep(250000); // sleep for 1/4 second
   $count++;
   if($count>50)
   {
     usleep(30000000); // sleep for 30 seconds
     $count=0;
   }
}
?>

You could zip then first in php http://www.php.net/manual/en/book.zip.php

Sonra bir büyük zip dosyasını yükleyin. Toplam dosya boyutu değiştirmek mümkün değildir, ama yine de hızlıdır benim WAN üzerinde dosyaların bir sürü transferlerini yaparken buldum.

-Will