2010-09-28 13 views
11

में एक फ़ाइल को दूसरी जगह पर कॉपी करता है मुझे उसी फ़ाइल को एक ही एफ़टीपी में 2 अलग-अलग जगहों पर अपलोड करने की आवश्यकता है। क्या फ़ाइल को फिर से अपलोड करने के बजाय एफ़टीपी पर दूसरी जगह पर कॉपी करने का कोई तरीका है? धन्यवाद।एफ़टीपी एक ही एफ़टीपी

उत्तर

9

मुझे नहीं लगता कि डाउनलोड करने और पुनः अपलोड करने के बिना फ़ाइलों की प्रतिलिपि बनाने का कोई तरीका है, कम से कम मुझे List of FTP commands में ऐसा कुछ नहीं मिला और मैंने कभी भी ऐसा कोई क्लाइंट नहीं देखा है जो मैंने देखा है।

9

हां, एफ़टीपी प्रोटोकॉल स्वयं सिद्धांत में इसका समर्थन कर सकता है। FTP RFC 959 अनुभाग 5.2 में इस पर चर्चा करता है (पैराग्राफ को प्रारंभ करें "जब डेटा दो सर्वरों, ए और बी के बीच स्थानांतरित किया जाना है ...")। हालांकि, मुझे किसी भी क्लाइंट के बारे में पता नहीं है जो इस तरह के दोहरी सर्वर नियंत्रण ऑपरेशन प्रदान करता है।

ध्यान दें कि यह विधि फ़ाइल को एफ़टीपी सर्वर से अपने नेटवर्क का उपयोग करके स्थानांतरित कर सकती है, जो कि स्थानीय फ़ाइल प्रतिलिपि जितनी तेज़ नहीं होगी, लेकिन लगभग निश्चित रूप से डाउनलोड करने से पहले तेज हो जाएगी और फिर फ़ाइल को फिर से लोड करना होगा।

+1

मुझे आश्चर्य है कि अगर आप इस का इस्तेमाल किया और निर्दिष्ट स्थानीय होस्ट अगर आपको लगता है कि नाबालिग टोंटी के आसपास हो सकता है:

आप यहाँ एफ़टीपी आदेशों को समझने के लिए चाहते हैं, तो उनमें से एक सूची है। फिर भी, हमें यह समझने की आवश्यकता है कि "एफ़टीपी बाउंस हमलों" के कारण कई एफ़टीपी सर्वर एफएक्सपी (सर्वर-टू-सर्वर ट्रांसफर के रूप में भी जाना जाता है) को अवरुद्ध करते हैं। लेकिन एक स्मार्ट एफ़टीपी सर्वर इसे स्थानीयहोस्ट के लिए अवरुद्ध नहीं करेगा। फिर भी, यह सिर्फ सभी एफएक्सपी को अवरुद्ध कर सकता है। – SilentSteel

0

मैं स्थानीय फ़ोल्डर के रूप में ftp को माउंट करने के लिए WebDrive का उपयोग करके ऐसा करने में कामयाब रहा, फिर फाइलज़िला का उपयोग करके फ़ाइलों को सीधे "डाउनलोड" करें। सामान्य रूप से डाउनलोड करने से थोड़ा धीमा था, लेकिन आपको अपने एचडीडी पर जगह रखने की आवश्यकता नहीं है।

+0

मुझे लगता है कि यह अभी भी आपकी मशीन पर अस्थायी रूप से फ़ाइल डाउनलोड करेगा और फिर इसे तुरंत आपके वेबड्राइव पर अपलोड करेगा। मुझे संदेह है कि आपको अभी भी इसे प्राप्त करने के लिए पर्याप्त डिस्कस्पेस की आवश्यकता होगी। –

-4

आप फ़ाइल को अपने वांछित परिणाम के पूर्ण पथ में कॉपी करने के लिए नाम बदल सकते हैं।

उदाहरण के लिए: आप फ़ोल्डर में फ़ाइल "file.txt" ले जाना चाहते हैं "NewFolder" आप इसे के रूप में

ftp> rename file.txt NewFolder/file.txt 

यह मेरे लिए काम किया लिख ​​सकते हैं।

+1

यह प्रश्न के बिंदु को याद करता है - ओपी ने स्पष्ट रूप से * प्रतिलिपि * के बारे में पूछा, * चलने * – codeling

1

मैं लिनक्स आधारित सिस्टम में रिमोट फ़ोल्डरों के बीच फ़ाइलों की प्रतिलिपि बना सकता हूं। >

  • एफ़टीपी लॉगिन जानकारी "सर्वर से कनेक्ट करें", आदि
  • ओपन नई PCManFM में टैब -

    • मेनू "गो": मेरी विशेष मामले में, मैं बहुत ही सामान्य फ़ाइल प्रबंधक PCManFM उपयोग कर रहा हूँ
    • कनेक्ट ही सर्वर को
    • से दूसरे टैब पर
    • कॉपी ...

    यह थोड़ा धीमा है, तो मुझे लगता है कि यह है कि इसे डाउनलोड किया जा सकता है और वापस अपलोड फाइलें, लेकिन यह स्वचालित रूप से और बहुत उपयोगकर्ता के अनुकूल है।

  • 13

    एफ़टीपी प्रोटोकॉल पर दूरस्थ फ़ाइल को डुप्लिकेट करने का कोई मानक तरीका नहीं है। हालांकि कुछ एफ़टीपी सर्वर इसके लिए मालिकाना या गैर-मानक एक्सटेंशन का समर्थन करते हैं।


    कुछ एफ़टीपी क्लाइंट दूरस्थ फ़ाइल डुप्लिकेशन का समर्थन करते हैं। या तो एक्सटेंशन का उपयोग या दूरस्थ फ़ाइल की एक अस्थायी स्थानीय प्रति के माध्यम से।

    उदाहरण WinSCP FTP client करता support the duplication लिए दोनों खींचें & ड्रॉप और मेनू/कुंजीपटल आदेश का उपयोग:

    • यह SITE CPFR/समर्थन करता है CPTO FTP विस्तार
    • यह एक करने के लिए वापस गिर जाता है (उदाहरण के लिए ProFTPD mod_copy module द्वारा समर्थित) यदि उपर्युक्त एक्सटेंशन उपलब्ध नहीं है, तो स्थानीय अस्थायी प्रति के माध्यम से स्वचालित डुप्लिकेशन।


    एक और वैकल्पिक हल FTP सर्वर के लिए एक दूसरी कनेक्शन खोलने और एक निष्क्रिय मोड पाइप द्वारा सर्वर पर ही करने के लिए फाइल को अपलोड करने के लिए है (मैं WinSCP के लेखक हूँ) एक सक्रिय मोड डेटा कनेक्शन के लिए डेटा कनेक्शन। यह समाधान answer by @SaadAchemlal में दिखाया गया है।

    +6

    के बारे में नहीं, मैं आपको WinSCP के अद्भुत टूल के लिए धन्यवाद देना चाहता हूं। – Fatih

    -2

    आप इसे सी-पैनल से कर सकते हैं।

    1. अपने सी-पैनल में लॉग इन करें।
    2. फ़ाइल प्रबंधक में जाएं।
    3. वह फ़ाइल या फ़ोल्डर ढूंढें जिसे आप डुप्लिकेट करना चाहते हैं।
    4. राइट-क्लिक करें और कॉपी करें चुनें।
    5. उस नए निर्देशक में टाइप करें जिसे आप प्रतिलिपि बनाना चाहते हैं।

    हो गया!

    +4

    1) अपनी पोस्ट में 'हस्ताक्षर' न छोड़ें, यही वह जगह है जहां आपकी प्रोफ़ाइल 2 है) सी-पैनल केवल विशिष्ट मामलों में उपलब्ध है। – Glorfindel

    1

    नीचे दिया गया कोड FTP सर्वर को फ़ाइल को अपलोड करने के लिए बनाता है (लूपबैक कनेक्शन का उपयोग करके)। निष्क्रिय और सक्रिय कनेक्शन मोड दोनों को अनुमति देने के लिए इसे FTP सर्वर की आवश्यकता है। List of ftp commands

    function copyFile($filePath, $newFilePath) 
    { 
        $ftp1 = ftp_connect('192.168.1.1'); 
        $ftp2 = ftp_connect('192.168.1.1'); 
        ftp_raw($ftp1, "USER ftpUsername"); 
        ftp_raw($ftp1, "PASS mypassword"); 
        ftp_raw($ftp2, "USER ftpUsername"); 
        ftp_raw($ftp2, "PASS mypassword"); 
    
        $res = ftp_raw($ftp2, "PASV"); 
        $addressAndPort = substr($res[0], strpos($res[0], '(') + 1); 
        $addressAndPort = substr($addressAndPort, 0, strpos($addressAndPort, ')')); 
    
        ftp_raw($ftp1, "CWD ." . dirname($newFilePath)); 
        ftp_raw($ftp2, "CWD ." . dirname($filePath)); 
        ftp_raw($ftp1, "PORT ".$addressAndPort); 
    
        ftp_raw($ftp1, "STOR " . basename($newFilePath)); 
        ftp_raw($ftp2, "RETR " . basename($filePath)); 
    
        ftp_raw($ftp1, "QUIT"); 
        ftp_raw($ftp2, "QUIT"); 
    } 
    
    +0

    @MartinPrikryl ठीक है मुझे आपको बताएं कि यह काम करता है क्योंकि मैं इस व्यक्ति को सिनोलॉजी नास पर उपयोग करता हूं। इसके अलावा यह सवाल का जवाब देता है क्योंकि आपको अपनी फ़ाइल को एक बार ftp पर अपलोड करने की आवश्यकता है और इसे फिर से अपलोड किए बिना इसे कॉपी करने के लिए मेरे फ़ंक्शन का उपयोग करने की आवश्यकता है। कृपया अगली बार यह समाधान करने से पहले समाधान का परीक्षण करने का प्रयास करें :) –

    +0

    क्षमा करें, आप सही हैं, मैंने कोड को ध्यान से नहीं पढ़ा। हालांकि अगली बार, भ्रम से बचने के लिए, अपनी पोस्ट में कुछ स्पष्टीकरण शामिल करें। +1 + मैंने आपका जवाब मेरा से जोड़ा है। –

    +0

    मैं अगली बार और अधिक व्याख्या करने की कोशिश करूंगा। संपादन के लिए धन्यवाद;) –

    संबंधित मुद्दे