Manajemen NEO Object Storage Menggunakan PHP
1 people liked this article
A. Pendahuluan
NEO Object Storage merupakan layanan S3 protokol yang dapat digunakan untuk menyimpan data static seperti hal nya gambar, video, music dan yang lainnya. NEO Object Storage sendiri sudah kompatibel dengan Amazon S3 dengan demikian Anda dapat memanfaatkan NEO Object Storage untuk kebutuhan S3 Protokol. NEO Object Storage dapat dikelola atau di manajemen menggunakan Amazon SDK tentunya untuk memudahkan Anda mengintegrasikan aplikasi PHP Anda dengan layanan NEO Object Storage.
PHP kependekan dari (Hypertext Preprocessor), singkatnya PHP adalah bahasa pemrograman script server-side yang didesain untuk pengembangan atau pembuatan website. Misalnya Anda mempunyai sebuah website dinamis maupun statis menggunakan PHP, maka Anda dapat menyimpan aset seperti gambar, video, musik yang ada pada website tersebut ke NEO Object Storage.
Untuk mengikuti panduan ini pastikan Anda sudah memenuhi persyaratan berikut ini:
- Sistem Operasi Linux Ubuntu/Debian/CentOS atau Control Panel (Plesk Panel).
- PHP versi 7.x - 8.0
- Composer
- Module AWS SDK versi 3
B. Instalasi dan Konfigurasi
Environment yang kami gunakan untuk panduan ini menggunakan sistem operasi Ubuntu 20.04 LTS, berikut merupakan tahapan instalasinya.
1. Memeriksa sistem operasi yang digunakan
Gambar 1. Periksa OS
2. Untuk instalasi PHP 7 di Ubuntu Anda dapat mengikuti KB berikut: Cara Instalasi PHP (7.1, 7.2, & 7.3) menggunakan PPA Pada Ubuntu 18.04 LTS
3. Instalasi composer di Ubuntu 20.04 LTS
ubuntu@neo-kb:~$ curl -sS https://getcomposer.org/installer -o composer-setup.php
ubuntu@neo-kb:~$ HASH=`curl -sS https://composer.github.io/installer.sig`
ubuntu@neo-kb:~$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Installer verified
ubuntu@neo-kb:~$
ubuntu@neo-kb:~$ ls
composer-setup.php
ubuntu@neo-kb:~$ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Gambar 2. Install Composer
4. Instalasi AWS SDK menggunakan composer
ubuntu@neo-kb:~$ sudo mkdir neo-object-storage
ubuntu@neo-kb:~$ cd neo-object-storage/
ubuntu@neo-kb:~/neo-object-storage$
ubuntu@neo-kb:~/neo-object-storage$ sudo composer require aws/aws-sdk-php
5. Apabila AWS SDK sudah terinstall akan nampak seperti berikut ini
ubuntu@neo-kb:~/neo-object-storage$ ll
total 40
drwxr-xr-x 3 root root 4096 Dec 1 17:58 ./
drwxr-xr-x 7 ubuntu ubuntu 4096 Dec 1 17:57 ../
-rw-r--r-- 1 root root 63 Dec 1 17:58 composer.json
-rw-r--r-- 1 root root 22154 Dec 1 17:58 composer.lock
drwxr-xr-x 10 root root 4096 Dec 1 17:59 vendor/
ubuntu@neo-kb:~/neo-object-storage$
Perlu diketahui untuk define composer autoloader dengan PHP SDK Anda dapat menggunakan script berikut
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
KONEKSI S3 NEO Object Storage
Untuk menghubungkan NEO Object Storage dengan PHP SDK Anda dapat menggunakan script PHP berikut:
$client = S3Client::factory([
'version' => 'latest',
'region' => 'idn',
'endpoint' => 'https://ENDPOINT-S3-ANDA',
'credentials' => [
'key' => "KEY-S3-ANDA",
'secret' => "SECRET-KEY-S3-ANDA"
]
]);
Membuat Bucket
Untuk membuat bucket NEO Object Storage menggunakan PHP SDK Anda dapat menggunakan script berikut
try {
$result = $client->createBucket([
'Bucket' => 'BERI-NAMA-BUCKET-DISINI',
]);
} catch (S3Exception $e) {
echo $e->getMessage();
}
Contoh nya sebagai berikut:
Gambar 3. Membuat Bucket
Jika sudah silahkan jalankan file php menggunakan perintah php
ubuntu@neo-kb:~/neo-object-storage$ php membuat-bucket.php
ubuntu@neo-kb:~/neo-object-storage$
Untuk memastikan bucket telah dibuat dapat dilakukan melalui https://portal.biznetgio.com/ pada menu Neo Object Storage, seperti berikut
Gambar 4. Memastikan Bucket Terbuat
Listing Bucket
Selain membuat bucket Anda juga dapat melihat semua list bucket yang ada di NEO Object Storage Anda menggunakan PHP SDK berikut sample script yang digunakan:
try {
$buckets = $client->listBuckets();
foreach ($buckets['Buckets'] as $bucket) {
echo $bucket['Name'] . "\n";
}
} catch (S3Exception $e) {
echo $e->getMessage();
}
Contohnya sebagai berikut:
Gambar 5. Script Listing Bucket
Hasilnya seperti berikut ini:
Gambar 6. Listing Bucket
Unggah File (Object) ke NEO Object Storage
Untuk mengunggah file (object) ke NEO Object Storage juga dapat dilakukan menggunakan PHP SDK, Anda dapat menggunakan script berikut:
try {
$client->putObject([
'Bucket' =>'NAMA-BUCKET-ANDA',
'Key' => 'NAMA-OBJEK-YANG-AKAN-DITERAPKAN',
'ContentType' => 'image/png', // menyesuaikan dengan konten yang ingin diunggah
'SourceFile' => 'LOKASI-FILE', // like /var/www/vhosts/mysite/file.xls
'ACL' => 'public-read', //public-read atau private
]);
} catch (S3Exception $e) {
// Catch an S3 specific exception.
echo $e->getMessage();
}
Contohnya sebagai berikut:
Gambar 7. Script Upload File
Keterangan:
Bucket: Nama Bucket
Key: Nama file (object) yang akan diunggah ke dalam bucket
ContentType: Tipe file (object) yang akan diunggah ke dalam bucket
SourceFile: Direktori file (object) berada
ACL: Permission file (object)
Untuk menjalankannya bisa menggunakan perintah php
ubuntu@neo-kb:~/neo-object-storage$ php unggah-bucket.php
ubuntu@neo-kb:~/neo-object-storage$
Pastikan file gambar dengan nama file Biznet-GIO-CLOUD.png sudah berada di dalam bucket buatbucketneo seperti berikut ini :
*Silakan dapat melakukan manajemen Neo Object Storage menggunakan S3 Client seperti S3 Browser https://kb.biznetgio.com/id_ID/149371-indonesian-version/management-neo-object-storage-menggunakan-s3-browser
Gambar 8. Periksa File
Silakan akses file gambar diatas melalui browser
*Pastikan file sudah diberikan permission Public Read
Gambar 9. Akses File Public
Hapus File (Object) NEO Object Storage
Untuk menghapus file (object) yang berada di dalam bucket menggunakan PHP SDK juga dapat di lakukan, dengan menggunakan script PHP SDK berikut:
try {
$result = $client->deleteObject([
'Bucket' => 'NAMA-BUCKET-ANDA',
'Key' => 'NAMA-OBJEK-ANDA',
]);
} catch (S3Exception $e) {
echo $e->getMessage();
}
Contohnya sebagai berikut:
Gambar 10. Script Hapus File
Gunakan perintah php untuk menjalankan file php nya
ubuntu@neo-kb:~/neo-object-storage$ php menghapus-file.php
ubuntu@neo-kb:~/neo-object-storage$
Pastikan file (object) nya sudah terhapus.
Gambar 11. Periksa File Terhapus
Program Sederhana Menggunakan PHP
Apabila Anda sudah mengetahui bagaimana cara unggah, hapus, listing dan membuat bucket, maka Anda dapat mengaplikasikannya ke dalam program PHP yang Anda miliki. Disini kami memberikan contoh program uploader sederhana menggunakan PHP SDK tentunya terintegrasi dengan S3 NEO Object Storage.
Silakan membuat file index.php dan isikan kode program PHP nya seperti berikut di dalam direktori PHP SDK
<?php
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
if(isset($_FILES['image'])){
$file_name = $_FILES['image']['name'];
$temp_file_location = $_FILES['image']['tmp_name'];
$client = S3Client::factory([
'version' => 'latest',
'region' => 'id-jkt-1',
'endpoint' => 'http://ENDPOINT-S3-ANDA',
'credentials' => [
'key' => "KEY-S3-ANDA",
'secret' => "SECRET-KEY-S3-ANDA"
]
]);
try {
$client->putObject([
'Bucket' =>'NAMA-BUCKET-ANDA',
'Key' => $file_name,
'ContentType' => 'image/png',
'SourceFile' => $temp_file_location, // like /var/www/vhosts/mysite/file.csv
'ACL' => 'public-read',
]);
} catch (S3Exception $e) {
// Catch an S3 specific exception.
echo $e->getMessage();
}
}
?>
<html>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit"/>
</form>
</html>
Gambar 12. Program Sederhana PHP
Untuk menjalankan program diatas bisa menggunakan webserver contoh disini kami menggunakan apache web server di Ubuntu 20.04 LTS.
Gambar 13. Apache
Berikut konfigurasi virtual host nya:
<VirtualHost *:80>
ServerName neo-object-storage.l1staging.my.id
DocumentRoot /var/www/html/neo-object-storage
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Enable a2ensite dan sesuaikan permission file dan direktori contohnya sebagai berikut:
ubuntu@neo-kb:/var/www/html/neo-object-storage$
ubuntu@neo-kb:/var/www/html/neo-object-storage$ ll
total 60
drwxr-xr-x 3 www-data www-data 4096 Dec 1 19:41 ./
drwxr-xr-x 3 root root 4096 Dec 1 19:38 ../
-rw-r--r-- 1 www-data www-data 63 Dec 1 17:58 composer.json
-rw-r--r-- 1 www-data www-data 22154 Dec 1 17:58 composer.lock
-rwxr-xr-x 1 www-data www-data 979 Dec 1 19:09 index.php*
-rw-r--r-- 1 www-data www-data 561 Dec 1 18:33 listing-bucket.php
-rw-r--r-- 1 www-data www-data 510 Dec 1 18:21 membuat-bucket.php
-rw-r--r-- 1 www-data www-data 552 Dec 1 18:56 menghapus-file.php
-rw-r--r-- 1 www-data www-data 843 Dec 1 18:51 unggah-bucket.php
drwxr-xr-x 10 www-data www-data 4096 Dec 1 17:59 vendor/
ubuntu@neo-kb:/var/www/html/neo-object-storage$
ubuntu@neo-kb:/var/www/html/neo-object-storage$ a2ensite neo.conf
Site neo already enabled
ubuntu@neo-kb:/var/www/html/neo-object-storage$
Jika sudah silahkan restart web server apache dan pastikan service apache webserver running
ubuntu@neo-kb:/var/www/html/neo-object-storage$
ubuntu@neo-kb:/var/www/html/neo-object-storage$ sudo systemctl restart apache2
ubuntu@neo-kb:/var/www/html/neo-object-storage$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-12-01 19:49:39 UTC; 4s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 18173 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 18192 (apache2)
Tasks: 6 (limit: 2344)
Memory: 11.7M
CGroup: /system.slice/apache2.service
├─18192 /usr/sbin/apache2 -k start
├─18193 /usr/sbin/apache2 -k start
├─18194 /usr/sbin/apache2 -k start
├─18195 /usr/sbin/apache2 -k start
├─18196 /usr/sbin/apache2 -k start
└─18197 /usr/sbin/apache2 -k start
Dec 01 19:49:39 neo-kb.local.id systemd[1]: Starting The Apache HTTP Server...
Dec 01 19:49:39 neo-kb.local.id systemd[1]: Started The Apache HTTP Server.
ubuntu@neo-kb:/var/www/html/neo-object-storage$
Jika sudah silahkan akses domain atau subdomain yang sudah di define di sisi virtual host, apabila berhasil akan nampak seperti gambar dibawah ini
Gambar 14. Cek Script Public
Upload file statis berupa gambar, musik, dan yang lainnya dengan cara klik pada tombol Browse.
Gambar 14. Fitur Upload File
Apabila sudah di upload silakan klik tombil Submit Query dan silakan pastikan kembali pada S3 Client anda untuk file gambar nya terunggah dengan baik.
C. Kesimpulan
Dalam pengembangan aplikasi web modern, object storage dengan PHP adalah komponen penting untuk pengelolaan data yang efisien, skala, dan aman. Kesimpulannya, pengelolaan object storage dengan PHP memerlukan pemahaman tentang API object storage, praktik keamanan, manajemen objek, dan skalabilitas untuk membangun aplikasi yang handal dan efisien.
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
8 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
-
Jenis-Jenis Software Virtualisasi untuk Membuat Virtual Machine
5 people say this guide was helpful