Tutorial Menyetting S3 Bucket di Laravel (Laravel 9)


 
Assalamu'alaikum Wr. Wb.

            Pada kesempatan kali ini saya ingin membagikan salah satu tutorial seperti pada judul pada artikel saya kali ini yaitu tutorial menyetting S3 bucket agar dapat digunakan untuk menyimpan file di S3 bucket menggunakan framework PHP Laravel. S3 (Simple Storage Service) bucket adalah salah satu layanan yang disediakan oleh Amazone Web Service yang digunakan untuk menyimpan dan mengakses data file(gambar, video, dokumen, dll.) yang berbentuk object, pada framework laravel atau yang saya gunakan pada tutorial kali ini adalah Laravel versi 9 implementasi S3 bucket sangatlah mudah, berikut untuk tutorialnya:


  1. Siapkan konfigurasi-konfigurasi yang dibutuhkan untuk menyetting s3 bucket di Project Laravel, untuk konfigurasi yang dibutuhkan adalah sebagai berikut:

            - access key
            - secret key
            - endpoint AWS
            - bucket s3

  2. Jika anda sudah memiliki konfigurasi-konfigurasi di atas, anda tinggal memasangnya di file .env pada Project Laravel anda, berikut contoh pemasangan konfigurasi-konfigurasi pada langkah pertama pada file .env pada Project Laravel anda:

              AWS_ACCESS_KEY_ID={secret key}
              AWS_SECRET_ACCESS_KEY={access key}
              AWS_DEFAULT_REGION=ap-southeast-1
              AWS_BUCKET={bucket s3}
              AWS_USE_PATH_STYLE_ENDPOINT=false
              AWS_ENDPOINT={endpoint}

             Pada konfigurasi di atas untuk region anda dapat mencarinya di internet nama region yang tepat sesuai dengan negara anda untuk konfigurasi di file .env project Laravel anda,  jika anda di indonesia anda dapat menggunakan konfigurasi region ap-southeast-1, dan untuk konfigurasi AWS_USE_PATH_STYLE_ENDPOINT digunakan untuk mengatur apakah endpoint S3 harus menggunakan gaya path atau subdomain, default config untuk AWS_USE_PATH_STYLE_ENDPOINT adalah false.
  3. Menginstall package untuk S3 bucket di Laravel dengan menjalankan perintah berikut pada terminal:

          composer require league/flysystem-aws-s3-v3:^3.15

    Dalam kasus tertentu package di atas sulit untuk diinstall jadi anda perlu menghapus file composer.lock terlebih dahulu lalu menjalankan ulang perintah di atas.
  4. Selanjutnya anda sudah bisa mulai menggukakan fitur code yang disediakan oleh framework laravel untuk menyimpan dan mendapatkan file dari s3 bucket, pertama anda import terlebih dahulu fitur s3 bucket dengan menempatkan kode berikut di header file:

    use Illuminate\Support\Facades\Storage;

    lalu anda sudah bisa menggunakan beberapa fitur s3 bucket pada laravel diantaranya adalah sebagai berikut:

    Untuk menyimpan file

           $file = $request->file('file');

           $file_name = 'folder_video/video_'.Str::random();

           $path_document = Storage::disk('s3')->put($file_name, $file);

    Dari kode di atas parameter dari function put yang pertama adalah nama file yang diambil dari variable $file_name pada value pada variable $file_name anda dapat menentukan file tersebut akan disipan di folder mana pada s3 bucket anda, dan dapat menggunakan kode Str::random() untuk membuat string acak untuk nama file anda.

    Mengambil metadata file

         $metadata_file = Storage::disk('s3')->get_metadata('path/file/anda.jpg');

    Untuk mengambil url dari file

          $url_file = Storage::disk('s3')->url('path/file/anda.jpg');

    Menghapus file di s3 bucket anda

         Storage::disk('s3')->delete('path/file/anda.jpg');

    Memeriksa eksistensi file di s3 bucket

         $file_exists = Storage::disk('s3')->exists('path/file/anda.jpg');        

    Mendapatkan daftar file pada folder di bucket s3 anda

         $file_list = Storage::disk('s3')->files('path/ke/folder');      

    Mendapatkan daftar folder pada s3 bucket anda

         $directories = Storage::disk('s3')->directories('path/ke/folder');

Posting Komentar

0 Komentar