Cloud Storage

Jika aplikasi Anda dihosting di App Engine, layanan penyimpanan cloud tersedia yang memungkinkan pengguna menyimpan, memuat, berbagi, dan memublikasikan program mereka.

Menyiapkan App Engine

Tujuan pertama adalah mendapatkan salinan Blockly Anda sendiri yang berjalan di App Engine.

  1. Download dan instal Python SDK.
  2. Login ke Google App Engine dan buat aplikasi.
  3. Edit appengine/app.yaml dan ubah ID aplikasi dari blockly-demo menjadi nama aplikasi yang Anda buat di langkah sebelumnya.
  4. Salin (atau soft-link) file dan direktori berikut ke dalam appengine/static/:
    • demos/
    • msg/
    • media/
    • *_compressed.js
  5. Opsional: Jika Anda ingin menggunakan blockly_uncompressed.js di server, salin juga file tersebut ke appengine/static/, dan salin core ke appengine/static/.
  6. Opsional: Jika Anda ingin menjalankan Blockly Playground, Anda harus menyalin direktori blocks, generators, dan tests, serta file pada langkah 5.
  7. Jalankan Peluncur Aplikasi Google App dari GUI, tambahkan direktori appengine Anda sebagai aplikasi yang ada, dan tekan tombol "Deploy". Jika Anda lebih suka menggunakan command line, jalankan: appcfg.py --oauth2 update appengine/.

Setelah Blockly diupload, Anda dapat mengarahkan browser ke URL yang Anda buat di langkah 2. Anda akan melihat daftar demo, termasuk demo penyimpanan cloud.

Berbicara dengan Cloud

Periksa sumber demo penyimpanan di demos/storage/index.html dan perhatikan fitur berikut. Pertama, terdapat skrip yang menyertakan Cloud Storage API:

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

Perlu diketahui bahwa skrip ini mengasumsikan hanya ada satu ruang kerja Blockly di halaman. Ada juga definisi pesan ini, yang harus Anda ubah sesuai keinginan:

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?';

Terjemahan pesan ini ke dalam bahasa lain dapat ditemukan di Blockly Games di direktori json.

Menyimpan blok saat ini adalah satu panggilan ke BlocklyStorage.link():

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

Untuk memulihkan pemblokiran tersimpan pada pemuatan halaman, cukup panggil BlocklyStorage.retrieveXml dengan hash URL setelah Blockly diinjeksi:

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

Penyimpanan Lokal

API storage.js juga menawarkan kemampuan untuk menyimpan satu set blok di penyimpanan lokal browser. Hal ini dapat diterapkan, bukan penyimpanan cloud, atau selain penyimpanan cloud (meskipun dalam kasus terakhir, seseorang harus berhati-hati dengan kedua jenis penyimpanan yang mencoba memulihkan sekaligus).

Untuk memulihkan blok dari penyimpanan lokal, panggil BlocklyStorage.restoreBlocks dalam waktu tunggu setelah Blockly diinjeksi.

setTimeout(BlocklyStorage.restoreBlocks, 0);

Untuk mencadangkan blok secara otomatis ke penyimpanan lokal saat pengguna meninggalkan halaman, panggil BlocklyStorage.backupOnUnload dan blok tersebut akan mendaftarkan pemroses peristiwa pada peristiwa penghapusan muatan halaman.

BlocklyStorage.backupOnUnload();

Contoh

Berikut adalah demo langsung penyimpanan cloud.