2009-11-10 15 views
7

मैं अभी रेल का उपयोग कर एक वेब एप्लिकेशन पर काम कर रहा हूं और यह देखना चाहता था कि फाइल स्टोरेज सीमाओं का ट्रैक रखने के लिए किसी को भी अच्छा तरीका पता है या नहीं? हम उपयोगकर्ताओं को एक विशिष्ट मात्रा में कमरा देना चाहते हैं जिसका उपयोग वे फाइल अपलोड करने के लिए कर सकते हैं और हम अमेज़ॅन एस 3 पर स्टोरेज के लिए पेपरक्लिप का उपयोग कर रहे हैं। कोई विचार? धन्यवादउपयोगकर्ताओं को फ़ाइल संग्रहण सीमा कैसे प्रदान करें?

उत्तर

7

वैकल्पिक कॉलम आप पेपरक्लिप साथ उपयोग कर सकते हैं में से एक OBJECT_file_size जो आप की तरह

# Assuming a user has many files relationship 
@user.uploads.sum(:image_file_size) 

साथ जोड़ सकते हैं के रूप में वास्तव में टोपी लगाने है, मैं जो कुछ भी फ़ाइल पर एक कस्टम मान्यता बनाने की सलाह देते हैं मॉडल ऐसा है कि आप क्लाइंट को त्रुटियों और मुद्दों को वापस कर सकते हैं।

6

पेपरक्लिप फ़ाइल का आकार संग्रहीत करता है।

def used_file_size 
    self.files.sum(:document_file_size) 
end 

तो आप हर उपयोगकर्ता के दस्तावेज़ों का कुल आकार होगा:
तो आप बस, एक उपयोगकर्ता के लिए, की तरह कुछ कर सकता है।
फिर आप अधिकतम आकार सीमा जोड़ सकते हैं और दस्तावेज़ के अपलोड को मान्य नहीं कर सकते हैं यदि उपयोगकर्ता उस आकार तक पहुंच गया है।