• 18-04-2025, 02:09:58
    #1
    selamlar,
    Sunucuma 14 gb lik bir sql zipi upload ediyorum fakat %1 bile olmadan hataya düşüyor.
    Zipin çözülmüş hali 40 GB
    Farklı resellerlardaki domainlere aktarıyorum mecbur ama onlardada çok yavaş ilerliyor.
    En hızlı nasıl upload edebilirim?
    Putty ile ssh daha hızlı olabilirmi ?
    Ssh ile upload kodu neydi ?

    SORUNU PHP + JQUERY İLE ÇÖZDÜM.
    Fillezilla bile 120 kps ile upload ediyordu.


    upload.html

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>Upload Hız Testi</title>
      <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
      <style>
        #progressBar {
          width: 100%;
          background-color: #ddd;
          border-radius: 10px;
        }
        #progressBar div {
          height: 20px;
          background-color: #4caf50;
          width: 0%;
          border-radius: 10px;
        }
      </style>
    </head>
    <body>
    
    <h2>Dosya Yükleme Testi</h2>
    <input type="file" id="fileInput"><br><br>
    <button id="uploadBtn">Yüklemeye Başla</button>
    
    <div id="progressBar"><div></div></div>
    <p id="statusText">Hazır</p>
    
    <script>
    $(document).ready(function() {
      $('#uploadBtn').click(function() {
        let file = $('#fileInput')[0].files[0];
        if (!file) return alert("Lütfen bir dosya seçin.");
    
        let formData = new FormData();
        formData.append("file", file);
    
        let startTime = new Date().getTime();
    
        let xhr = new XMLHttpRequest();
        xhr.upload.addEventListener("progress", function(e) {
          if (e.lengthComputable) {
            let percent = (e.loaded / e.total) * 100;
            let currentTime = new Date().getTime();
            let timeElapsed = (currentTime - startTime) / 1000; // saniye
            let mbUploaded = e.loaded / 1024 / 1024;
            let speedMbps = ((e.loaded * 8) / 1024 / 1024) / timeElapsed;
    
            $('#progressBar div').css('width', percent + '%');
            $('#statusText').html(
              `Yüklenen: ${mbUploaded.toFixed(2)} MB<br>` +
              `Hız: ${speedMbps.toFixed(2)} Mbps`
            );
          }
        });
    
        xhr.upload.addEventListener("load", function() {
          $('#statusText').append("<br>Yükleme tamamlandı.");
        });
    
        xhr.open("POST", "upload.php");
        xhr.send(formData);
      });
    });
    </script>
    
    </body>
    </html>
    upload.php 'ye eklenecek kod
    <?php
    if (isset($_FILES['file'])) {
        $fileTmp = $_FILES['file']['tmp_name'];
        $fileName = basename($_FILES['file']['name']);
        $targetPath = __DIR__ . '/' . $fileName;
    
        $allowedExtension = '.sql.gz';
        if (substr($fileName, -strlen($allowedExtension)) !== $allowedExtension) {
            echo "❌ Yalnızca .sql.gz uzantılı dosyalar yüklenebilir.";
            exit;
        }
    
        if (move_uploaded_file($fileTmp, $targetPath)) {
            echo "✅ Yükleme başarılı: $fileName<br>";
            echo "📁 Kaydedildiği yer: $targetPath";
        } else {
            echo "❌ move_uploaded_file başarısız oldu.<br>";
            echo "Geçici dosya: $fileTmp<br>";
            echo "Hedef yol: $targetPath<br>";
            echo "PHP upload ayarlarını kontrol edin.";
        }
    } else {
        echo "❌ Dosya alınamadı.";
    }
    ?>
    %100 ÇÖZDÜM

    CHUNK UPLOAD OLAYI İLE
    <script>
        const chunkSize = 100 * 1024 * 1024; // 100 MB
    
        function upload() {
            const file = document.getElementById('fileInput').files[0];
            if (!file) return alert("Dosya seçilmedi");
    
            const totalChunks = Math.ceil(file.size / chunkSize);
            let currentChunk = 0;
    
            const uploadNextChunk = () => {
                const start = currentChunk * chunkSize;
                const end = Math.min(start + chunkSize, file.size);
                const chunk = file.slice(start, end);
    
                const formData = new FormData();
                formData.append("chunk", chunk);
                formData.append("name", file.name);
                formData.append("chunkIndex", currentChunk);
                formData.append("totalChunks", totalChunks);
    
                const xhr = new XMLHttpRequest();
                xhr.open("POST", "chunk_upload.php", true);
    
                xhr.onload = function () {
                    if (xhr.status === 200) {
                        currentChunk++;
                        document.getElementById("status").innerText = `Yükleniyor: ${((currentChunk / totalChunks) * 100).toFixed(2)}%`;
    
                        if (currentChunk < totalChunks) {
                            uploadNextChunk();
                        } else {
                            document.getElementById("status").innerText = "✅ Yükleme tamamlandı.";
                        }
                    } else {
                        document.getElementById("status").innerText = "❌ Hata oluştu.";
                    }
                };
    
                xhr.send(formData);
            };
    
            uploadNextChunk();
        }
    </script>

    PHP DOSYASINA YAZILACAK KODLAR
    <?php
    $targetDir = __DIR__ . "/uploads/";
    if (!is_dir($targetDir)) mkdir($targetDir, 0777, true);
    
    $name = $_POST['name'];
    $chunkIndex = intval($_POST['chunkIndex']);
    $totalChunks = intval($_POST['totalChunks']);
    
    $tempFile = $_FILES['chunk']['tmp_name'];
    $targetFile = $targetDir . $name . ".part" . $chunkIndex;
    
    move_uploaded_file($tempFile, $targetFile);
    
    // Son parça yüklendiyse birleştir
    if ($chunkIndex + 1 === $totalChunks) {
        $finalFile = $targetDir . $name;
        $output = fopen($finalFile, 'wb');
    
        for ($i = 0; $i < $totalChunks; $i++) {
            $part = $targetDir . $name . ".part" . $i;
            $in = fopen($part, 'rb');
            stream_copy_to_stream($in, $output);
            fclose($in);
            unlink($part);
        }
    
        fclose($output);
        echo "✅ Dosya birleştirildi: " . $name;
    } else {
        echo "🧩 Parça {$chunkIndex} alındı.";
    }
  • Kabul Edilen Cevap
    • 1 Beğeni
      Sql dosyayı filezilla ile upload et bir dizine.
      Sonra ssh ile import et.
      Kodlar aklımda değil. Chatgpt ye yaz söyler.
  • 18-04-2025, 02:13:08
    #2
    Bu cevap, konu sahibi tarafından kabul edilebilir bir cevap olarak işaretlendi.
    Sql dosyayı filezilla ile upload et bir dizine.
    Sonra ssh ile import et.
    Kodlar aklımda değil. Chatgpt ye yaz söyler.
  • 18-04-2025, 02:14:03
    #3
    A.AY adlı üyeden alıntı: mesajı görüntüle
    Sql dosyayı filezilla ile upload et bir dizine.
    Sonra ssh ile import et.
    Kodlar aklımda değil. Chatgpt ye yaz söyler.
    Fillezilla cpanel uploadından daha mı hızlı oluyor bu konuda?
  • 18-04-2025, 02:14:49
    #4
    Slash adlı üyeden alıntı: mesajı görüntüle
    Fillezilla cpanel uploadından daha mı hızlı oluyor bu konuda?
    Evet. İnternet hizini sonuna kadar kullanır.
  • 18-04-2025, 02:16:14
    #5
    A.AY adlı üyeden alıntı: mesajı görüntüle
    Evet. İnternet hizini sonuna kadar kullanır.
    Ssh daha mantıklı gibi
    20 Mbps upload hızınla 14 GB'lık bir dosya yüklemek istiyorsan, hız açısından en iyi seçeneği bulmak önemli. Her yöntemin performansı farklı olabilir, özetle:

    1. cPanel (Dosya Yöneticisi) ile Yükleme

    • Avantajlar: Kullanımı kolay, arayüz üzerinden direkt yüklenebilir.
    • Dezavantajlar:
      • Tarayıcı üzerinden çalıştığı için büyük dosyalarda yükleme kesintiye uğrayabilir.
      • Tek seferde yüklenebilecek maksimum dosya boyutu sınırlı olabilir (örneğin 2 GB veya 4 GB).
      • Hız tarayıcı sınırlamaları nedeniyle düşük olabilir.

    2. FileZilla (FTP)

    • Avantajlar:
      • Daha stabil bağlantı, koparsa devam edebilir.
      • Büyük dosya aktarımında tarayıcıdan daha iyi.
    • Dezavantajlar:
      • Tek dosya olarak yüklüyorsan FTP’nin bazı sunucularda limitleri olabilir (örn. timeout veya 2 GB sınırı).
    • Hız: Genellikle cPanel'e göre daha hızlı ve stabil olur.

    3. SSH (SCP, rsync, vb.)

    • Avantajlar:
      • En hızlı ve güvenilir yöntemdir.
      • Kopsa bile devam ettirme şansı var (özellikle rsync kullanılırsa).
    • Dezavantajlar: SSH erişimin yoksa bu yöntem mümkün değil.
    • Hız: Tam anlamıyla bağlantı hızının sınırına ulaşabilir. Yani senin 20 Mbps (yaklaşık 2.5 MB/s) hızınla, teorik olarak:
    bash
    KopyalaDüzenle
    14 GB / 2.5 MB/s = yaklaşık 94 dakikada (1 saat 34 dakika)

    Öneri:

    • SSH erişimin varsa rsync ya da scp ile yükle → En hızlı ve sorunsuz yöntem budur.
    • SSH yoksa FileZilla kullan → cPanel’e göre daha hızlı ve güvenilir olur.
    • cPanel’den yükleme büyük dosya olduğu için önerilmez (yükleme yarıda kalabilir veya tarayıcı donabilir).
  • 18-04-2025, 02:21:04
    #6
    Şöyle yap. 14gb dosyayı en hızlı şekilde sanala aktarma yöntemi söylüyorum.
    Yandex disk masaüstü uygulamasinda değişik bir sistem var. Dosyayı ne yapıyorsa artık tüm yöntemlerden en hızlı şekilde yüklüyor. Sanirim dosyayı kendi içinde düşük boyutlarda arşivleyip bu sayede hızlı yüklüyor.
    Dosyayı yandex diske attıktan sonra windows vpsden indirip yükleyebilirsin.

    Vakti zamanında şöyle bir konu açtıydim. Bir göz at istersen.

    https://www.r10.net/sorum-var/336875...ad-ediyor.html
  • 18-04-2025, 02:21:07
    #7
    A.AY adlı üyeden alıntı: mesajı görüntüle
    Sql dosyayı filezilla ile upload et bir dizine.
    Sonra ssh ile import et.
    Kodlar aklımda değil. Chatgpt ye yaz söyler.
    sonuna kadar katılıyorum hocam. bu yöntem işe yarıyor denendi.
  • 18-04-2025, 02:23:13
    #8
    Punisher adlı üyeden alıntı: mesajı görüntüle
    sonuna kadar katılıyorum hocam. bu yöntem işe yarıyor denendi.
    En hızlı yöntem Yandex Disk Programı. Bir üstte yazdim açıklamasını.
  • 18-04-2025, 02:36:24
    #9
    Punisher adlı üyeden alıntı: mesajı görüntüle
    sonuna kadar katılıyorum hocam. bu yöntem işe yarıyor denendi.
    A.AY adlı üyeden alıntı: mesajı görüntüle
    En hızlı yöntem Yandex Disk Programı. Bir üstte yazdim açıklamasını.
    chatgpt kodları ile şuan dos ekranı ile upload ediyorum ama buda yavaş gibi geldi
    1000 mpbs download hızım var 20 mps upload ah mileni ah..