Cloud Storage

अगर आपका ऐप्लिकेशन App Engine पर होस्ट किया जाता है, तो क्लाउड स्टोरेज सेवा उपलब्ध होती है. इसकी मदद से, उपयोगकर्ता अपने प्रोग्राम सेव कर सकते हैं, लोड कर सकते हैं, शेयर कर सकते हैं, और पब्लिश कर सकते हैं.

App Engine सेट करना

इसका पहला मकसद, App Engine पर ब्लॉक करने की सुविधा की आपकी कॉपी पाना है.

  1. Python SDK डाउनलोड और इंस्टॉल करें.
  2. Google App Engine में लॉग इन करें और एक ऐप्लिकेशन बनाएं.
  3. appengine/app.yaml में बदलाव करें और ऐप्लिकेशन आईडी को blockly-demo से बदलकर पिछले चरण में बनाए गए ऐप्लिकेशन नाम कर दें.
  4. इन फ़ाइलों और डायरेक्ट्री को appengine/static/ में कॉपी (या सॉफ़्ट-लिंक) करें:
    • demos/
    • msg/
    • media/
    • *_compressed.js
  5. ज़रूरी नहीं: अगर आप सर्वर पर blockly_uncompressed.js का इस्तेमाल करना चाहते हैं, तो उस फ़ाइल को appengine/static/ में भी कॉपी करें और core को appengine/static/ में कॉपी करें.
  6. ज़रूरी नहीं: अगर आपको Blockly प्लेग्राउंड चलाना है, तो आपको blocks, generators, और tests डायरेक्ट्री के साथ-साथ, पांचवें चरण में मौजूद फ़ाइलें कॉपी करनी होंगी.
  7. Google ऐप्लिकेशन इंजन लॉन्चर को GUI से चलाएं, अपनी appengine निर्देशिका को एक मौजूदा ऐप्लिकेशन के रूप में जोड़ें और "डिप्लॉय करें" बटन दबाएं. अगर आपको कमांड लाइन का इस्तेमाल करना है, तो यह चलाएं: appcfg.py --oauth2 update appengine/.

Blockly अपलोड होने के बाद, आप ब्राउज़र को दूसरे चरण में बनाए गए यूआरएल पर ले जा सकते हैं. आपको डेमो की एक सूची दिखेगी, जिसमें क्लाउड स्टोरेज डेमो भी शामिल है.

क्लाउड से बात करना

स्टोरेज डेमो , डेमो/स्टोरेज/इंडेक्स.html के स्रोत की जांच करें और नीचे दी गई सुविधाओं का ध्यान रखें. सबसे पहले, इसमें एक स्क्रिप्ट शामिल है जो क्लाउड स्टोरेज एपीआई को लोड करती है:

<script src="/storage.js"></script>

ध्यान दें कि यह स्क्रिप्ट यह मानकर चलती है कि पेज पर सिर्फ़ एक ब्लॉक किया गया फ़ाइल फ़ोल्डर है. ये मैसेज परिभाषाएं भी हैं, जिन्हें आपको ज़रूरत के मुताबिक बदलना चाहिए:

BlocklyStorage.HTTPREQUEST_ERROR = 'There was a problem with the request.\n';
BlocklyStorage.LINK_ALERT = 'Share your blocks with this link:\n\n%1';
BlocklyStorage.HASH_ERROR = 'Sorry, "%1" doesn\'t correspond with any saved Blockly file.';
BlocklyStorage.XML_ERROR = 'Could not load your saved file.\n' +
    'Perhaps it was created with a different version of Blockly?';

इन मैसेज का दूसरी भाषाओं में अनुवाद, json डायरेक्ट्री में Blockly Games में देखा जा सकता है.

मौजूदा ब्लॉक सेव करने के लिए, BlocklyStorage.link() को सिर्फ़ एक कॉल किया जा सकता है:

<button onclick="BlocklyStorage.link()">Save Blocks</button>

पेज लोड होने पर सेव किए गए ब्लॉक को पहले जैसा करने के लिए, ब्लॉक किए गए यूआरएल के इंजेक्ट करने के बाद, यूआरएल की हैश से BlocklyStorage.retrieveXml को कॉल करें:

if ('BlocklyStorage' in window && window.location.hash.length > 1) {
  BlocklyStorage.retrieveXml(window.location.hash.substring(1));
}

लोकल स्टोरेज

storage.js एपीआई, ब्राउज़र के स्थानीय स्टोरेज में ब्लॉक के एक सेट को सेव करने की सुविधा भी देता है. इसे क्लाउड स्टोरेज के बजाय या क्लाउड स्टोरेज के साथ लागू किया जा सकता है. हालांकि, क्लाउड स्टोरेज के साथ-साथ, दोनों के लिए पहले से सेव किए गए स्टोरेज का ध्यान रखना पड़ता है.

ब्लॉक किए गए आइटम को लोकल स्टोरेज से पहले जैसा करने के लिए, इंजेक्ट करने के तुरंत बाद BlocklyStorage.restoreBlocks को कॉल करें.

setTimeout(BlocklyStorage.restoreBlocks, 0);

जब उपयोगकर्ता पेज से बाहर जाता है, तब ब्लॉक को डिवाइस के स्टोरेज में अपने-आप बैक अप लेने के लिए, BlocklyStorage.backupOnUnload को कॉल करें. ऐसा करने पर, पेज के अनलोड होने पर इवेंट को सुना जाएगा.

BlocklyStorage.backupOnUnload();

उदाहरण

यह क्लाउड स्टोरेज का लाइव डेमो है.