Di laravel menggunakan AWS S3 untuk penyimpan sangat mudah, karena sudah terintegrasi dengan filesystem laravel.
Buat Bucket S3
Klik Create Bucket
Bucket name : laravels3-upload
Region : Asia Pacific (Singapore)
di Configure Options jangan isi apapun.
Set Permission
Hilangkan tanda checklist di Block all public access
Review
klik Create Bucket
Upload dari Laravel 6
Bila belum menginstall laravel 6, install dengan
composer create-project --prefer-dist laravel/laravel laravel-upload-s3 6.*
lalu install flysystem-aws-s3, untuk menghandle proses upload ke s3
cd laravel-upload-s3 composer require league/flysystem-aws-s3-v3
edit file config/filesystems.php
, tambahkan visibility di s3
's3' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION'), 'bucket' => env('AWS_BUCKET'), 'url' => env('AWS_URL'), 'visibility' => 'public',
edit file .env, tambahkan credential S3 anda, sesuaikan dengan nama bucket yang dibuat sebelumnya
AWS_ACCESS_KEY_ID=AKIAXXXXXXXXXXXXXXXXXXXX AWS_SECRET_ACCESS_KEY=sntMRjy4ejJpVxWLbhVXsntMRjy4ejJpVxWLbhVX AWS_DEFAULT_REGION=ap-southeast-1 AWS_BUCKET=laravels3-upload AWS_URL=
Tes Upload
Edit file routes/web.php
dibagian paling bawah tambahkan
Route::get('/upload', function () { $fileGambar = "/home/tommy/photo-1573002649606-a7cb9846805c.jpg"; $contents = file_get_contents("$fileGambar"); $namaFile = basename($fileGambar); $filePath = 'images/' . "$namaFile"; $file = Storage::disk('s3')->put($filePath, $contents, 'public'); $data = Storage::url("images/" .$namaFile); var_dump($data); });
ganti path $fileGambar
dengan lokasi file gambar anda.
Jalankan php artisan serve
, lalu buka http://127.0.0.1:8000/upload
Buka file dari url diatas
file sukses di upload. Setelah sukses tes dan lihat hasilnya, sekarang bisa dibuat form untuk upload beserta validasinya bisa mengikuti langkah-langkah di Membuat Upload Gambar Dengan Laravel 5.2
Kenapa hasilnya false ya gan?
lengkapnya seperti apa?