ruby
  • amazon-s3
  • fog
  • 2013-01-25 12 views 5 likes 
    5

    का उपयोग कर S3 में किसी मौजूदा या नई बनाई गई फ़ाइल में टेक्स्ट अटैचमेंट कैसे मौजूदा S3 फ़ाइल के अंत में सामग्री जोड़ें। मैं fog उपयोग कर रहा हूँ और मैं कोडरूबी - कोहरे

    require 'fog' 
    file = "abc.csv" 
    bucket = 'my_bucket' 
    storage = Fog::Storage.new(:provider => 'AWS', :aws_access_key_id => 'XXXXXXXX', :aws_secret_access_key => 'YYYYYYYY') 
    dir  = connection.directories.new(:key => bucket) # no harm, if this bucket already exists, if not create one 
    buffer = ["big_chunk1", "big_chunk2", "big_chunk3", "big_chunk4", "big_chunk5"] 
    
    # I need help after this line. No changes above. 
    buffer.each do |chunk| 
        # this will not work as it will not append text below the existing file or 
        # newly created one. I am not looking for solution suggesting, buffer.join('') 
        # and then write whole chunk at once. I have to write in chuck for some specific reason. 
        # Also I dont want to first read existing data and then take in to memory 
        # and then append and finally write back. 
        dir.files.create(:key => file, :body => chunk, :public => false) 
    end 
    

    उत्तर

    5

    निम्नलिखित है एक बार S3 पर अपलोड एक फ़ाइल अपरिवर्तनीय है - यह बदला नहीं जा सकता या के साथ जोड़ दिया।

    यदि आप सिर्फ एक भाग में फाइल अपलोड करना चाहते हैं, तो आप मल्टीपार्ट अपलोड एपीआई का उपयोग करने में सक्षम हो सकते हैं, (मान लें कि आपके पास 10000 भाग हैं और आखिरी लेकिन कम से कम 5 एमबी होगा), हालांकि आप ' डी को शायद धुंध अनुरोध स्तर पर जाने की आवश्यकता है (वर्तमान में आपके जैसे कोहरे मॉडल का उपयोग करने के बजाय)।

    +0

    धन्यवाद @ फ्रेडरिक चेंग। मैं इतना अनुसंधान करने के बाद एक ही निष्कर्ष तक पहुंच गया हूं। वैसे, क्या आप जानते हैं कि धुंध का उपयोग करके एस 3 यूआरएल पर हस्ताक्षर कैसे करें? कोहरे दस्तावेज़ों में आसानी से इसके बारे में कोई जानकारी नहीं मिली। – JVK

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