क्या कोई एफ़टीपी या एफ़टीपी जैसा ग्राहक है जो "डेल्टा अपलोड" की अनुमति देता है - अर्थात केवल फ़ाइल के कुछ हिस्सों को अपलोड करना जो बदल दिए गए हैं?


9

मैं अक्सर एफ़टीपी ( वेब विकास के लिए सीएसएस फ़ाइलें ) के माध्यम से काफी बड़ी पाठ फ़ाइलों में छोटे बदलाव करता हूं और क्योंकि मेरा इंटरनेट कनेक्शन बहुत धीमा है, यह एक बहुत ही दर्दनाक प्रक्रिया है।

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

क्या कोई तरीका है जो मैं अपने स्थानीय कंप्यूटर पर दूरस्थ रूप से होस्ट की गई फ़ाइलों को संपादित कर सकता हूं और जब मैं फ़ाइल को सहेजता हूं, तो केवल फ़ाइल के कुछ हिस्सों को अपलोड कर सकता हूं ?

संपादित करें: मुझे लगता है कि मैं इस बारे में स्पष्ट नहीं हूं कि मैं इस समय अपने एफ़टीपी ग्राहक का उपयोग कैसे कर रहा हूं। असल में, मैं WinSCP का उपयोग करके SFTP पर एक दूरस्थ फ़ाइल खोलता हूं। WinSCP इसे एक tmp फ़ोल्डर में सहेजता है, Sublime Text लॉन्च करता है और मैं इसे संपादित करना शुरू करता हूं। जब मैं सेव को हिट करता हूं, तो WinSCP स्वचालित रूप से फाइल को फिर से अपलोड करता है। मैं वास्तव में अपने कंप्यूटर पर फ़ाइल को स्थायी रूप से सहेज नहीं रहा हूं - WinSCP के अस्थायी फ़ोल्डर के माध्यम से सब कुछ किया जाता है। इसलिए मैं एक ऐसे उपाय की तलाश कर रहा हूं जिसका उपयोग इस "हिट एंड रन" प्रकार से किया जा सके।


पिछली चर्चा

मैंने पहले सर्वरफॉल्ट पर यह प्रश्न पोस्ट किया था, जहां git जैसी किसी चीज़ का उपयोग करने का सुझाव दिया गया था, हालाँकि जैसा कि मैंने समझाया:

गिट या इसी तरह के एक उपकरण के साथ, मुझे हर बार फ़ाइल को सहेजने के लिए प्रतिबद्ध होना चाहिए, है ना? यहां तक ​​कि अगर यह स्वचालित रूप से किया जा सकता है (यानी अगर मेरे पास एक मैक्रो था जो सब-टेक्स्ट टेक्स्ट सेव फाइल में Ctrl-S बनाता था और एक ही समय में एक git पुश निष्पादित करता है), तो मैं प्रति घंटे एक CSS फ़ाइल के 50 - 100 छोटे संपादन कर सकता हूं; निश्चित रूप से मैं एक स्पैम-आउट कमिट लॉग के साथ समाप्त होगा? इसके अलावा git समाधान अनम्य है क्योंकि यह जिस भी फाइल पर संपादन कर रहा है वह एक git रेपो का हिस्सा है।

अब तक का एकमात्र समाधान मैं सोच सकता हूं कि rsync का उपयोग करके किसी तरह की हैक-अप प्रक्रिया है लेकिन फिर भी, यह बहुत ही काल्पनिक है:

  1. मैं अपने कंप्यूटर (FTP / rsync / जो भी हो) के लिए आवश्यक फ़ाइल डाउनलोड करता हूं।
  2. मैं एक फ़ाइल खोलता हूं (उदा) उदात्त पाठ और संपादन बनाना शुरू करता हूं।
  3. एक पृष्ठभूमि प्रक्रिया फ़ाइल संशोधनों के लिए फ़ोल्डर की निगरानी कर रही है। जब मैं किसी फ़ाइल को सहेजता हूं, तो वह प्रक्रिया तुरंत मेरे कंप्यूटर से सर्वर पर एक rsync ऑपरेशन को ट्रिगर करती है, फ़ाइल के परिवर्तित भागों को स्थानांतरित करती है।

हालाँकि, मुझे मैन्युअल रूप से दूरस्थ फ़ाइल या निर्देशिका पथ सेट करने या निर्दिष्ट करने की आवश्यकता होगी अन्यथा स्थानीय rsync स्क्रिप्ट को पता नहीं चलेगा कि फ़ाइलों को कहाँ से rsync करना है, इसलिए यह विधि अभी भी बहुत अनम्य है। यह विधि मुझे तुरंत एक यादृच्छिक फ़ाइल को ब्राउज़ नहीं करने देती है, इसे खोलें और इसे एफ़टीपी क्लाइंट की तरह सहेजें।

इस पद्धति के साथ अपलोड प्रगति पट्टी जैसी कोई दृश्य प्रतिक्रिया भी नहीं है।


7
Git का उपयोग करना वास्तव में सही उत्तर है। आप यहां जो देख रहे हैं वह खराब अभ्यास के लिए एक समाधान है। क्या होगा अगर आप कुछ गलत करते हैं और चीजों को तोड़ते हैं? Git आपको रोलबैक देता है।
टीआरजी

1
मैं असहमत हूं। क्या होगा यदि आप बस एक बड़ी टेक्स्ट फाइल की एक लाइन को बदलना चाहते हैं जो रेपो का हिस्सा नहीं है? यदि आपका संगठन अनुमति नहीं देता या समर्थन नहीं करता है तो क्या होगा? मेरा उपयोग-मामला यह है कि मैं उन फ़ाइलों में सैकड़ों छोटे-छोटे बदलाव कर रहा हूं जो दूरस्थ रूप से होस्ट की जाती हैं और जिन्हें "लाइव" और "इन" जगह संपादित किया जाना चाहिए।
14

मेरे पास अभी एक बड़ी फ़ाइल पर परीक्षण करने का समय नहीं है, इसलिए इसे एक टिप्पणी के रूप में पोस्ट किया जा रहा है, एक जवाब नहीं है, लेकिन परे की तुलना में देखें - यह एक क्रॉस-प्लेटफ़ॉर्म जीयूआई फ़ाइल है जो एफ़टीपी / एसएफटीपी पर संपादित कर सकती है और आप कर सकते हैं चुनें कि कौन सी पंक्तियों को सिंक करना है। शायद अभी भी आदर्श नहीं है, लेकिन व्यावहारिक है। उनका नि: शुल्क परीक्षण भी है।
निक

जवाबों:


7

विम में एक अंतर्निहित प्लगइन है, जिसे नेट्रव कहा जाता है, जो विम को दूरस्थ फ़ाइलों को संपादित करने की अनुमति देता है। रुपीक्स एक प्रोटोकॉल का उपयोग कर सकता है:

:e rsync://user@hostname:port/path
:w rsync://user@hostname:port/path

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


उस सब ने कहा,

दूरस्थ रूप से होस्ट की गई फ़ाइलों के लिए सैकड़ों छोटे परिवर्तन किए जा रहे हैं और जिन्हें "लाइव" और "स्थान पर" संपादित किया जाना चाहिए

एक विश्वसनीय रोलबैक प्रणाली के बिना जैसे कि आप क्या प्रदान कर सकते हैं जैसे कि आप और आपका संगठन सिर्फ पीड़ा के लिए भीख माँगते हैं जब आप अपरिहार्य गलतियाँ करते हैं जो कि बहुत अच्छी तरह से किसी का ध्यान नहीं जा सकता है जब तक कि आप वास्तव में भूल नहीं गए थे कि आपने क्या किया था।


यदि सर्वर लिनक्स का कोई भी संस्करण चला रहा है तो SSH स्पष्ट उत्तर लगता है। यदि यह पहले से ही सर्वर पर नहीं चल रहा है, तो मैं इसे स्थापित करने के लिए सर्वर व्यवस्थापक पर दबाव डालूंगा।
चार्ल्स बर्ग

तुम दोनों को धन्यवाद; मेरे पास पूर्ण SSH पहुंच है और सर्वर पर जो कुछ भी आवश्यक है उसे कॉन्फ़िगर कर सकता है। मैं दूरस्थ रूप से विम का उपयोग नहीं कर सकता क्योंकि विलंबता अक्सर बहुत अधिक होती है। इसके अलावा, मैं Sublime जैसे डेस्कटॉप संपादकों का उपयोग करने में सक्षम होना चाहता हूं। मुझे लगता है कि मैं इस बारे में स्पष्ट नहीं हूं कि मैं इस समय अपने एफ़टीपी क्लाइंट का उपयोग कैसे कर रहा हूं - मूल रूप से, मैं WinSCP का उपयोग करके एक दूरस्थ फ़ाइल खोलता हूं, इसे संपादित करना शुरू करता हूं, और जब मैं सेव को हिट करता हूं, तो WinSCP फ़ाइल को स्वचालित रूप से पुन: अपलोड करता है। मैं वास्तव में इसे अपने कंप्यूटर पर किसी भी स्थायी निर्देशिका में डाउनलोड नहीं कर रहा हूं - सब कुछ WinSCP के अस्थायी फ़ोल्डर के माध्यम से किया जाता है। मैं अपना प्रश्न संपादित करूँगा और स्पष्ट करूँगा।
WackGet

@WackGet Vim डेस्कटॉप पर भी काम करता है, इसे GVim कहा जाता है। क्रीम विम का एक विशेष कॉन्फ़िगरेशन है जो उन लोगों के लिए अपेक्षाकृत आसान माना जाता है, जो सबलाइम, नोटपैड या टेक्स्टमेट जैसे संपादकों के लिए उपयोग किए जाते हैं। WinSCP के साथ आप जो कर रहे हैं वह जरूरी है कि netrw कैसे काम करता है। यह एक अस्थायी स्थान पर डाउनलोड होता है, आपको बचाने के लिए इंतजार करता है, फिर इसे दूरस्थ सर्वर पर वापस लिख देता है, आपके द्वारा निर्दिष्ट प्रोटोकॉल का उपयोग करके।
8bittree

@ 8 बिट्री धन्यवाद, यह निश्चित रूप से उपयोगी होगा। मैं इसे अपने मूल प्रश्न के उत्तर के रूप में चिह्नित नहीं करूंगा क्योंकि यह आपको विम-आधारित प्लगइन का उपयोग करने के लिए सीमित करता है। अगर कोई नेट्रव-जैसे डेल्टा को एफ़टीपी या एफ़टीपी-जैसे क्लाइंट में स्थानांतरित कर सकता है, तो यह सही होगा। वर्तमान में मुझे यह अभी तक नहीं मिला है, लेकिन मुझे उम्मीद है कि यह मौजूद है।
WackGet

1

तुलना से परे एक अलग उपकरण है जो फ़ोल्डर और फ़ाइलों की तुलना और विलय कर सकता है; एफ़टीपी सर्वर भी समर्थित हैं और एक स्थानीय फ़ोल्डर की तरह संभाला जा सकता है। यह मालिकाना है, एक इंस्टॉल के लिए आजीवन लाइसेंस मानक संस्करण के लिए 30 यूएसडी (एफटीपी के साथ) या पेशेवर संस्करण के लिए 60 यूएसडी (एसएफटीपी के साथ) है। यह विंडोज, मैक ओएस और लिनक्स पर चलता है। व्यक्तिगत रूप से मैं अपने घर के कंप्यूटर पर अपनी वेबसाइट विकसित करता हूं और जब मैं खुश होता हूं तो अपने वेब सर्वर में परिवर्तन अपलोड करता हूं। मैं बियॉन्ड तुलना के साथ बदलाव से गुजरता हूं लेकिन इसे स्वचालित भी किया जा सकता है। आप इसे आज़मा सकते हैं और देख सकते हैं कि क्या यह केवल पूर्ण फ़ाइलों या परिवर्तनों का हिस्सा अपलोड करता है; मैं उसके बारे में निश्चित नहीं हूं।


तुलना के अलावा अगर आप SSH का उपयोग नहीं करते हैं तो कमाल - एकदम सही है, लेकिन आपको अभी भी यह सुनिश्चित करने की आवश्यकता है कि फ़ाइलों को एक दूरस्थ सर्वर पर सिंक किया गया है (SSL पर FTP समर्थित है)
सैम Heuck
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.