JOSS

JOSS with PHP

Estimated reading: 3 minutes 111 views

Berikut cara integrasi JOSS dengan aplikasi PHP melalui API S3 dengan penyimpanan objek yang skalabel dan andal.

  1. Instalasi AWS SDK untuk PHP
    AWS SDK untuk PHP memudahkan interaksi dengan layanan AWS, termasuk S3. Untuk menginstalnya, gunakan Composer :

    composer require aws/aws-sdk-php
    

    Jika Composer belum terinstal, Anda dapat mengikuti petunjuk instalasinya disini.

  2. Konfigurasi Koneksi ke JOSS
    Setelah SDK terinstal, langkah berikutnya adalah mengkonfigurasi koneksi ke JOSS. Berikut adalah contoh kode untuk menginisialisasi klien S3 dengan endpoint joss (https://s3.jetdino.id) :

    <?php
    
    use Aws\S3\S3Client;
    
    // Define your AWS credentials
    define('AWS_KEY', 'your-access-key');
    define('AWS_SECRET_KEY', 'your-secret-key');
    $ENDPOINT = 'https://s3.jetdino.id';
    
    // Autoload the AWS SDK
    require __DIR__ . '/vendor/autoload.php';
    
    // Initialize the S3 client
    $client = new S3Client([
        'region' => '',
        'version' => '2006-03-01',
        'endpoint' => $ENDPOINT,
        'credentials' => [
            'key' => AWS_KEY,
            'secret' => AWS_SECRET_KEY,
        ],
        'use_path_style_endpoint' => true,
    ]);
    

    Catatan :

    • AWS_KEY dan AWS_SECRET_KEY harus diganti dengan kredensial akses JOSS Anda.
    • $ENDPOINT adalah URL endpoint JOSS Anda, biasanya berupa https://s3.jetdino.id
    • Pengaturan 'use_path_style_endpoint' => true memastikan bahwa URL yang digunakan sesuai dengan format yang diharapkan oleh JOSS.
  3. Operasi Dasar S3 dengan PHP
    Dengan klien S3 yang telah dikonfigurasi, Anda dapat melakukan berbagai operasi, seperti membuat bucket, mengunggah objek, dan lain-lain. Berikut adalah beberapa contoh :
    a. Membuat Bucket

    <?php
    
    $bucketName = 'my-new-bucket';
    
    try {
        $client->createBucket(['Bucket' => $bucketName]);
        echo "Bucket '$bucketName' berhasil dibuat.\n";
    } catch (Aws\Exception\AwsException $e) {
        echo "Error: " . $e->getMessage() . "\n";
    }

    b. Mengunggah Objek

    <?php
    
    $bucketName = 'my-new-bucket';
    $key = 'hello.txt';
    $body = 'Hello, World!';
    
    try {
        $client->putObject([
            'Bucket' => $bucketName,
            'Key' => $key,
            'Body' => $body,
        ]);
        echo "Objek '$key' berhasil diunggah ke bucket '$bucketName'.\n";
    } catch (Aws\Exception\AwsException $e) {
        echo "Error: " . $e->getMessage() . "\n";
    }

    c. Mengunduh Objek

    <?php
    
    $bucketName = 'my-new-bucket';
    $key = 'hello.txt';
    $savePath = '/path/to/save/hello.txt';
    
    try {
        $result = $client->getObject([
            'Bucket' => $bucketName,
            'Key' => $key,
        ]);
        file_put_contents($savePath, $result['Body']->getContents());
        echo "Objek '$key' berhasil diunduh ke '$savePath'.\n";
    } catch (Aws\Exception\AwsException $e) {
        echo "Error: " . $e->getMessage() . "\n";
    }

    d. Menghapus Objek

    <?php
    
    $bucketName = 'my-new-bucket';
    $key = 'hello.txt';
    
    try {
        $client->deleteObject([
            'Bucket' => $bucketName,
            'Key' => $key,
        ]);
        echo "Objek '$key' berhasil dihapus dari bucket '$bucketName'.\n";
    } catch (Aws\Exception\AwsException $e) {
        echo "Error: " . $e->getMessage() . "\n";
    }
  4. Penanganan Error dan Logging
    Dalam setiap operasi, penting untuk menangani kemungkinan error yang terjadi. AWS SDK untuk PHP menyediakan mekanisme untuk menangani exception :

    use Aws\Exception\AwsException;
    
    try {
        // Operasi S3
    } catch (AwsException $e) {
        // Log error
        error_log($e->getMessage());
        // Tampilkan pesan error kepada pengguna
        echo "Terjadi kesalahan: " . $e->getMessage() . "\n";
    }

 

Leave a Comment

Share this Doc

JOSS with PHP

Or copy link

CONTENTS