2017-04-05 5 views
13

Google क्लाउड स्टोरेज में फ़ाइल अपलोड करते समय, एक कस्टम डेटा फ़ील्ड metadata है।क्या Google क्लाउड स्टोरेज में मेटाडेटा मानों की लंबाई की सीमा है?

Google's example काफी कम है:

var metadata = { 
    contentType: 'application/x-font-ttf', 
    metadata: { 
    my: 'custom', 
    properties: 'go here' 
    } 
}; 

file.setMetadata(metadata, function(err, apiResponse) {}); 

वहाँ कितना बड़ा GCS मेटाडाटा वस्तु के लिए अनुमति देगा के लिए एक अधिकतम है, मैं वहाँ में टार और ज़िप फ़ाइलें, या कुछ सौ केबी के प्रकट होता है स्टोर करने के लिए इच्छा चाहिए ?

+0

आप कोशिश कर सकते हैं, लेकिन मेटाडेटा संग्रहण की गणना की जाती है और वैसे भी सामान्य दर पर बिल किया जाता है। –

+0

बिंदु उसमें कुछ डालना है जो मुझे बताता है कि मुझे 3 गीग फ़ाइल चाहिए या नहीं ... – Paul

+0

यह अनियंत्रित है, और केवल जिन्होंने कोशिश की है या इंजीनियरों को पता है। आप इसमें 3 जीबी डालने का प्रयास क्यों नहीं करते? –

उत्तर

9

GCS में सेट मेटाडेटा अपलोड निम्न आदेश का उपयोग:

$ echo '{"metadata": {"large": "' > body ; tr -dC '[:print:]' < /dev/urandom | tr -d '\\"' | head -c SIZE_OF_METADATA_IN_BYTES >> body ; echo '"}}' >> body; curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -X PATCH -H "Content-type: application/json" -d @body -o return_body https://www.googleapis.com/storage/v1/b/manifest-geode-357/o/empty 

मुझे लगता है कि 2097KB शीर्ष लेख के ऊपर सेवा रिटर्न "HTTP 413 अनुरोध बहुत बड़ी है" और मेटाडाटा सेट नहीं है। उस स्तर के नीचे यह अपेक्षित के रूप में सेट है। यदि मैं अधिक संपीड़ित इनपुट (उदाहरण के लिए yes का आउटपुट) का उपयोग करता हूं, तो मुझे अधिक डेटा मिल सकता है, लेकिन कट ऑफ एक ही सामग्री-लंबाई मान (जो पोस्ट-संपीड़न है) पर है। 2097 केबी == 2 एमआईबी लगभग बिल्कुल, मुझे उम्मीद है कि वास्तविक सीमा पूरी HTTP अनुरोध 2 एमआईबी में फिट होनी चाहिए।


हालांकि ब्रैंडन की टिप्पणी सही है: इस कारण से एक पूरी सूची के लिए एक बहुत अच्छा विचार नहीं है:

  1. यह आपको अधिक बैंडविड्थ (जुड़े प्रदर्शन और लागत की सजा के साथ) का उपभोग करने के कारण होगा
  2. आप संग्रहण लागत पर कोई भी पैसा नहीं बचाएंगे (जैसा कि मेटाडेटा अभी भी चार्ज किया गया है)।
  3. यह अनियंत्रित व्यवहार पर निर्भर करता है जिसे बिना किसी सूचना के Google द्वारा बदला जा सकता है।
  4. असली ऑब्जेक्ट डेटा के विपरीत, अपलोड पर कोई पुन: प्रारंभ करने योग्य व्यवहार नहीं है, इसलिए त्रुटियों ने आपको और भी खराब कर दिया है।
  5. अपलोड प्रक्रिया के दौरान अखंडता को सत्यापित करने के लिए कोई चेकसम नहीं है।
  6. ऐसा लगता है कि कई क्लाइंट लाइब्रेरी डिस्क पर बजाए मेटाडेटा इन-मेमोरी स्टोर करते हैं या एकाधिक प्रतियां रखते हैं, इसलिए आपको अपने एप्लिकेशन में मेमोरी प्रेशर देखने की अधिक संभावना है।

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

+0

अक्षर "एबीसी" बार-बार दोहराए गए हैं, बल्कि अच्छी तरह से gzip होगा। Gzip के माध्यम से डाला गया 1 एमबी "एबीसी" केवल 1 केबी बन जाता है। क्या होता है यदि डेटा थोड़ा अधिक यादृच्छिक है? – Paul

+0

'tr -dC 'का उपयोग करना [: print:]' David

+0

यह मेरे लिए काफी अच्छा है। हालांकि, किसी और ने बक्षीस रखा था। – Paul

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