Manajemen Akses NEO Object Storage Menggunakan Python
0 people liked this article
A.Pendahuluan
Manajemen akses Object Storage bisa dilakukan dengan apa saja, bisa menggunakan aplikasi S3-client seperti DragonDisk, S3Browser, S3fs, S3cmd maupun dengan bahasa pemrograman PHP, Python, dll. Adapun manajemen akses Object Storage menggunakan aplikasi S3-Client sudah pernah dibahas pada tautan berikut. Namun kali ini pembahasan untuk manajemen Object Storage menggunakan bahasa pemrograman Python.
Adapun untuk mengakses Object Storage membutuhkan modul boto3 dalam script python, boto3 merupakan AWS SDK untuk python yang disediakan oleh Amazon. Apabila belum menginstall silakan install modul boto3 terlebih dahulu.
Prasyarat :
1. Memiliki layanan Object Storage pada Neo Cloud
2. Install Pyhton3
3. Install modul Boto3
4. Menggunakan sistem operasi Ubuntu 20.04
B. Instalasi dan Konfigurasi
1. Update paket ke yang paling baru:
sudo apt update
sudo apt -y upgrade
2. Apabila proses update dan upgrade sudah selesai, silakan cek versi python dengan perintah:
python3 –V
Output:
Python 3.8.5
3. Untuk mengelola software python bisa menggunakan pip, pip adalah sebuah modul python yang digunakan untuk mengelola software atau paket dalam pengembangan sebuah projek.
sudo apt install -y python3-pip
Kemudian install modul boto3:
sudo pip3 install boto3
4. Selanjutnya bisa setup environment pada python, hal ini bersifat opsional. Apabila projek Anda tidak ingin diganggu dengan adanya dependensi atau hal lain bisa membuat environment baru.
Install modul venv terlebih dahulu:
sudo apt install -y python3-venv
Untuk setup environment baru, silakan buat direktorinya, seperti:
mkdir environment
cd environment
Keterangan:
‘environment’ adalah nama direktori, bisa menggunakan nama direktori yang lain.
Setelah masuk pada direktori ‘environment’, buat environment dengan menjalankan perintah:
python3 -m venv my_env
Keterangan:
‘my_env’: Nama environment
Apabila dilihat isi direktori ‘my_env’ tersebut sudah muncul output berikut, maka pembuatan environment baru berhasil.
ls
bin include lib lib64 pyvenv.cfg share
Aktifkan environment yang sudah dibuat dengan menjalankan perintah berikut:
source my_env/bin/activate
Apabila sudah terdapat prefiks (my_env), berarti setup environment berhasil dilakukan.
Catatan:
Apabila menggunakan environment pada projek Anda, pastikan modul boto3 sudah terinstall, jika belum silakan install terlebih dahulu tanpa menggunakan sudo.
pip3 install boto3
5. Langkah selanjutnya adalah import modul boto3 kedalam script python, silakan buat nama file terlebih dahulu dengan ekstensi .py (misal: biznet.py).
import boto3
Masukkan data credential seperti Access Key dan Secret Key beserta Service Endpoint layanan object storage, untuk melihatnya bisa login ke Portal Neo terlebih dahulu dan pilih layanan Object Storage Anda.
Gambar 1. Melihat akses key & secret key
s3 = boto3.resource('s3', endpoint_url='http://nos.wjv-1.neo.id',
aws_access_key_id = 'Masukkan Access_Key disini',
aws_secret_access_key = ' Masukkan Secret_Key disini')
6. Kemudian, masukkan perintah untuk akses object storage seperti membuat bucket, melihat daftar bucket, melihat object pada daftar bucket, menghapus bucket, mengakses bucket, membuat akses kontrol/permission, dll.
a. Membuat bucket
s3.create_bucket(Bucket='nama_bucket') atau
s3.create_bucket(Bucket='nama_bucket', CreateBucketConfiguration={
'LocationConstraint': 'idn'})
Keterangan:
‘nama_buket’: nama buket bisa menggunakan nama bucket yang lain.
Simpan script python tersebut, dan jalankan dengan perintah:
Python3 (nama_script.py)
Apabila tidak ada pesan error yang muncul, maka pembuatan bucket berhasil, Anda bisa melihat pada aplikasi DragonDisk dan pastikan nama bucket tersebut ada.
Gambar 2. Hasil membuat bucket baru
b.Mengakses bucket
Untuk mengakses bucket bisa menggunakan script dibawah ini:
bucket = s3.Bucket('nama_bucket')exists = True
try:
s3.meta.client.head_bucket(Bucket='nama_bucket')
except botocore.exceptions.ClientError as e:
# If a client error is thrown, then check that it was a 404 error.
# If it was a 404 error, then the bucket does not exist.
error_code = e.response['Error']['Code']
if error_code == '404':
exists = False
Keterangan:
‘nama_buket’: nama buket bisa menggunakan nama bucket yang lain.
c. Melihat semua object pada daftar bucket
Untuk melihat nama objek pada semua daftar bucket layanan object storage bisa menggunakan script berikut:
ffor bucket in s3.buckets.all():
for key in bucket.objects.all():
print(key.key)
Gambar 3. Hasil listing file objek storage
d. Menghapus bucket
Adapun untuk menghapus bucket bisa menggunakan script berikut:
s3.Bucket('neocloud').delete()
Catatan:
Untuk menghapus bucket, pastikan bucket tersebut kosong atau tidak terdapat file objek apapun.
e. Apabila ingin melakukan generate presigned URL untuk mengakses bisa menggunakan script berikut ini.
Presigned URL merupakan URL hasil generate untuk mengakses file objek storage dari public tanpa mengubah permission default dengan rentang waktu tertentu.
uurl = client.generate_presigned_url('get_object', {'Bucket': nama_buket', 'Key': 'nama_objek'}, ExpiresIn=60)
print("Pre-signed URL: %s" % (url))
Keterangan:
Nama_buket : Isi dengan nama buket dalam layanan Objek Storage Anda
Nama_objek : Isi dengan nama file objek dalam layanan Objek Storage Anda.
ExpiresIn : Waktu habis akses presigned URL, default satuannya adalah detik.
Karena menggunakan variabel client pada script diatas, maka tambahkan variabel client dibawah import, seperti berikut:
client = s3.meta.client
Gambar 4. Menambah variabel client
Nantinya akan muncul output hasil generate URL dan silakan akses menggunakan browser.
Gambar 5. Akses sebelum generate presigned URL
Gambar 6. Akses sesudah generate presigned URL
Apabila ingin keluar dari environment, bisa mengetikkan perintah `deactivate` (tanpa tanda petik).
C. Kesimpulan
Manajemen akses storage menggunakan pemrograman python sangatlah luas, hal diatas hanyalah beberapa contoh cara akses storage. Selebihnya bisa Anda explore secara mandiri. Contoh diatas lebih aman karena setup environment terlebih dahulu, sehingga tidak akan mengganggu projek Anda yang sedang berjalan.
Namun, hal tersebut hanyalah bersifat opsional. Apabila Anda ingin mengelola layanan objek storage dengan python tanpa setup environmen tentu juga bisa dilakukan.
Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silahkan hubungi support@biznetgio.com atau (021) 5714567.
Popular Articles
-
Cara Install & Konfigurasi Monitoring Cacti Serta Mengetahui Fungsi Fitur Pada Cacti
10 people say this guide was helpful
-
Cara Mengaktifkan Telnet pada Windows 7, 8 dan 10
3 people say this guide was helpful
-
Instalasi DNS Server Menggunakan Service Bind di CentOS 7
4 people say this guide was helpful
-
Install dan Konfigurasi Samba Server pada Ubuntu
2 people say this guide was helpful