Advertisement
  1. Code
  2. Cloud & Hosting

Google Cloud Storage: Mengelola Bucket

Scroll to top
Read Time: 6 min
This post is part of a series called Google Cloud Storage.
Google Cloud Storage: Managing Files and Objects

() translation by (you can also view the original English article)

Google Cloud Storage (GCS) adalah sebuah penyimpanan obyek yang sangat sederhana dan ampuh yang menawarkan oleh Google sebagai bagian dari Google Cloud Platform (GCP). Itu menyediakan sebuah solusi penyimpanan yang berdaya tahan tinggi, dapat diukur, konsisten dan tersedia bagi pengembang dan merupakan teknologi yang sama yang Google gunakan untuk memperkuat penyimpanan obyeknya sendiri.

Itu berbayar dengan model bayar apa yang kamu gunakan, dan GCP hadir dengan percobaan 60 hari, jadi itu bebas untuk dicoba untuk melihat jika itu sesuai dengan kebutuhan organisasimu. GCS memiliki tingkat pelayanan yang berbeda (juga disebut kelas penyimpanan) yang dapat dipilih sesuai kebutuhan (diskusi lebih detail pada ini diluar lingkup tutorial ini). GCS dapat digunakan untuk berbagai tujuan, seperti melayani konten website statis/dinamis, menyimpan file aplikasi khusus pengguna, penanganan bencana, atau membuat obyek data yang besar dapat didownload bagi pengguna.

Mereka yang telah berkerja pada GCP akan mengetahui bahwa dalam GCP berputar di sekitar project. Tiap project dapat memiliki banyak bucket di sekitar dimana arsitektur Google Cloud Storage dibuat strukturnya. Bucket adalah container dasar pada GCS yang mengandung data yang disimpan. Ini digunakan sebagai blok dasar untuk mengelola datamu dan tampak seperti folder dalam sebuah sistem operasi, namun mereka tidak dapat bersarang.

Tiap bucket dapat berisi sejumlah obyek, yang dapat berapa folder dan / atau file. Sebuah bucket ditentukan kelas penyimpanan dan lokasi geografisnya ketika dibuat. Pengaturan ini dapat ditentukan ketika membuat bucket namun tidak dapat diganti nantinya.

Bucket memiliki konvensi penamaan khusus yang perlu diikuti dengan ketat, jika tidak GCP tidak akan mengijinkanmu untuk membuat sebuah bucket. Nama bucket umumnya unik, sehingga mereka perlu dipilih dalam sebuah cara untuk mencegah konflik. Bagaimana pun juga, sebuah nama yang digunakan oleh bucket yang dihapus tidak dapat digunakan kembali.

Juga, nama tidak dapat diganti setelah itu ditentukan pada sebuah bucket. Satu-satunya solusi jika kamu ingin mengganti itu adalah membuat sebuah bucket baru dengan nama yang diinginkan, memindahkan konten dari bucket sebelumnya ke bucket yang baru, dan kemudian menghapus bucket sebelumnya.

Dalam tutorial ini, saya akan mengcover bagaimana menangani bucket dari Google Cloud Console. Ini diikuti dengan sebuah script Python dimana saya akan mendemonstrasikan melakukan operasi yang sama secara pemrograman.

Menggunakan Google Cloud Console

Pertama-tama, mari kita lihat bagaimana mengelola bucket menggunakan tampilan pengguna web yang disediakan GCP dikenal sebagai Google Cloud Console.

Buka Storage Browser dalam browser web pilihanmu. Jika kamu adalah pengguna pertama, kamu akan diminta untuk membuat sebuah project dahulu. Juga, sebuah pilihan akan ditampilkan untuk mendaftar uji coba gratis. Lanjutkan dengan pendaftaran uji coba gratis, jika tidak kamu tidak akan diijinkan untuk membuat bucket baru. Secara default, GCP hanya menyediakan satu bucket gratis tiap contoh App Engine.

Setelah selesai melakukan smua proses formal ini, mengarahkan ke halaman ini akan membuka halaman yang ditunjukkan di bawah.

Google Cloud Storage BrowserGoogle Cloud Storage BrowserGoogle Cloud Storage Browser

Untuk membuat sebuah bucket baru, klik pada tombol Create Bucket yang disorot di atas. Buat sebuah bucket dengan mengisi nama yang diinginkan seperti yang ditunjukkan di bawah. Namanya harus mengikuti konvensi penamaan bucket.

Creating a new bucketCreating a new bucketCreating a new bucket

Setelah kamu membuat sebuah bucket, browser GCS akan mendaftarkannya. Bucket dapat dihapus dengan memilihnya dari daftar dan mengklik tombol delete.

Delete a bucketDelete a bucketDelete a bucket

Mengklik pada tombol refresh akan mengisi UI dengan perubahan apapun pada daftar bucket tanpa memuat ulang keseluruhan halaman.

Mengelola Bucket Secara Pemrograman

Pertama-tama, mari buat sebuah contoh Google Compute Engine yang akan mengijinkan demonstrasi cepat pada konsep yang ditargetkan daripada berhadapan dengan langkah otentifikasi tambahan pada mesin lokal. Untuk membuat sebuah contoh GCE, buka tautan dan klik pada tombol Create Instance seperti yang ditunjukkan di bawah.

Create a new Compute Engine instanceCreate a new Compute Engine instanceCreate a new Compute Engine instance

Sebuah form akan muncul meminta detail yang relevan, yang dapat diisi sesuai kenyamananmu. Setelah contoh GCE dibuat, buka SSH client seperti yang ditunjukkan di bawah, yang secara default membuka dalam sebuah jendela browser baru.

SSH into Compute Engine instanceSSH into Compute Engine instanceSSH into Compute Engine instance

Layar SSH client akan tampak seperti yang ditunjukkan di bawah. Semua operasi lebih lanjut dalam tutorial ini akan dilakukan secara langsung pada SSH client itu sendiri.

SSH Client for newly created Compute Engine instanceSSH Client for newly created Compute Engine instanceSSH Client for newly created Compute Engine instance

Menulis Sebuah Script Python

Di bawah adalah perintah yang kamu butuhkan untuk dijalankan untuk mengatur server yang baru dibuat untuk lingkungan pengembangan Python.

1
$ sudo apt-get update
2
$ sudo apt-get install python-dev python-setuptools
3
$ sudo easy_install pip

Di bawah ini adalah dependency yang perlu diinstal untuk menulis script.

1
$ sudo pip install google-api-python-client

Pada sistem produksi, tidak disarankan untuk menginstal libraries menggunakan "sudo". Tolong ikuti penerapan terbaik Python virtualenv untuk hal ini.

gcs_bucket.py

1
import sys
2
from pprint import pprint
3
4
from googleapiclient import discovery
5
from googleapiclient import http
6
from oauth2client.client import GoogleCredentials
7
8
9
def create_service():
10
    credentials = GoogleCredentials.get_application_default()
11
    return discovery.build('storage', 'v1', credentials=credentials)
12
    
13
    
14
def list_buckets(project):
15
    service = create_service()
16
    res = service.buckets().list(project=project).execute()
17
    pprint(res)
18
    
19
    
20
def create_bucket(project, bucket_name):
21
    service = create_service()
22
    res = service.buckets().insert(
23
        project=project, body={
24
            "name": bucket_name
25
        }
26
    ).execute()
27
    pprint(res)
28
    
29
    
30
def delete_bucket(bucket_name):
31
    service = create_service()
32
    res = service.buckets().delete(bucket=bucket_name).execute()
33
    pprint(res)
34
35
36
def get_bucket(bucket_name):
37
    service = create_service()
38
    res = service.buckets().get(bucket=bucket_name).execute()
39
    pprint(res)
40
41
42
def print_help():
43
        print """Usage: python gcs_bucket.py <command>

44
Command can be:

45
    help: Prints this help

46
    list: Lists all the buckets in specified project

47
    create: Create the provided bucket name in specified project

48
    delete: Delete the provided bucket name

49
    get: Get details of the provided bucket name

50
"""
51
52
53
if __name__ == "__main__":
54
    if len(sys.argv) < 2 or sys.argv[1] == "help" or \
55
        sys.argv[1] not in ['list', 'create', 'delete', 'get']:
56
        print_help()
57
        sys.exit()
58
    if sys.argv[1] == 'list':
59
        if len(sys.argv) == 3:
60
            list_buckets(sys.argv[2])
61
            sys.exit()
62
        else:
63
            print_help()
64
            sys.exit()
65
    if sys.argv[1] == 'create':
66
        if len(sys.argv) == 4:
67
            create_bucket(sys.argv[2], sys.argv[3])
68
            sys.exit()
69
        else:
70
            print_help()
71
            sys.exit()
72
    if sys.argv[1] == 'delete':
73
        if len(sys.argv) == 3:
74
            delete_bucket(sys.argv[2])
75
            sys.exit()
76
        else:
77
            print_help()
78
            sys.exit()
79
    if sys.argv[1] == 'get':
80
        if len(sys.argv) == 3:
81
            get_bucket(sys.argv[2])
82
            sys.exit()
83
        else:
84
            print_help()
85
            sys.exit()

Script Python di atas mendemonstrasikan operasi besar yang dapat dilakukan pada sebuah bucket. Ini mencakup:

  • pembuatan sebuah bucket baru dalam sebuah project
  • membuat daftar semua bucket dalam sebuah project
  • mendapatkan detail sebuah bucket spesifik
  • menghapus sebuah bucket spesifik

Mari lihat seperti apa operasi ini ketika script ini dijalankan.

1
$ python gcs_bucket.py 
2
Usage: python gcs_bucket.py <command>
3
Command can be:
4
    help: Prints this help

5
    list: Lists all the buckets in specified project
6
    create: Create the provided bucket name in specified project
7
    delete: Delete the provided bucket name
8
    get: Get details of the provided bucket name
9
    
10
$ python gcs_bucket.py list tutsplus-demo
11
{u'items': [{u'etag': u'CAE=',
12
             u'id': u'tutsplus-demo.appspot.com',
13
             u'kind': u'storage#bucket',
14
             u'location': u'US',
15
             u'metageneration': u'1',
16
             u'name': u'tutsplus-demo.appspot.com',
17
             u'projectNumber': u'1234567890',
18
             u'selfLink': u'https://www.googleapis.com/storage/v1/b/tutsplus-demo.appspot.com',
19
             u'storageClass': u'STANDARD',
20
             u'timeCreated': u'2016-10-05T15:30:52.237Z',
21
             u'updated': u'2016-10-05T15:30:52.237Z'}],
22
 u'kind': u'storage#buckets'}
23
 
24
 $ python gcs_bucket.py create tutsplus-demo tutsplus-demo-test
25
{u'etag': u'CAE=',
26
 u'id': u'tutsplus-demo-test',
27
 u'kind': u'storage#bucket',
28
 u'location': u'US',
29
 u'metageneration': u'1',
30
 u'name': u'tutsplus-demo-test',
31
 u'projectNumber': u'1234567890',
32
 u'selfLink': u'https://www.googleapis.com/storage/v1/b/tutsplus-demo-test',
33
 u'storageClass': u'STANDARD',
34
 u'timeCreated': u'2016-10-07T05:55:29.638Z',
35
 u'updated': u'2016-10-07T05:55:29.638Z'}
36
 
37
 $ python gcs_bucket.py get tutsplus-demo-test
38
{u'etag': u'CAE=',
39
 u'id': u'tutsplus-demo-test',
40
 u'kind': u'storage#bucket',
41
 u'location': u'US',
42
 u'metageneration': u'1',
43
 u'name': u'tutsplus-demo-test',
44
 u'projectNumber': u'1234567890',
45
 u'selfLink': u'https://www.googleapis.com/storage/v1/b/tutsplus-demo-test',
46
 u'storageClass': u'STANDARD',
47
 u'timeCreated': u'2016-10-07T05:55:29.638Z',
48
 u'updated': u'2016-10-07T05:55:29.638Z'}
49
 
50
 $ python gcs_bucket.py delete tutsplus-demo-test
51
''

Kesimpulan

Dalam tutorial ini, kamu melihat bagaimana mengelola bucket pada Google Cloud Storage. Ini juga diiringi dengan perkenalan singkat membuat sebuah contoh Google Compute Engine dan menggunakannya via SSH client.

Dalam tutorial selanjutnya, saya akan mengcover bagaimana mengelola obyek, yaitu folder dan file di dalam sebuah bucket.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.