زمانیکه در یک پروژه لاراولی قصد ذخیره تصاویر یا فایل های دیگه تون رو بر روی مخازن Object Storage دارید، معمولا روی سیستم لوکال به خطای زیر بر خورد خواهید کرد :
Unable to write file at location: images/jnfbQnHpvfnaFjsdSTEV3JSHrlJ84QVELvnYn0xL.webp. Error executing \"PutObject\" on \"https://domain.storage.space/images/jnfbQnHpvfnaFjsdSTEV3JSHrlJ84QVELvnYn0xL.webp\"; AWS HTTP error: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
این خطا بر میگرده به نحوه اتصال کامپیوتر شما با سرور ذخیره ساز تصاویر
داره میگه که روی کامپیوتر شما SSL برای دامنه تون نصب نشده
یه راهکارش اینه که SSL روی سیستم لوکال تون نصب کنید که آموزش هاش توی اینترنت وجود داره
راه حل دوم که خیلی هم راحته ولی نباید در محط Production ازش استفاده کنید رو میخوام در زیر بهتون یاد بدم.
وارد فایل زیر بشید :
config/filesystems.php
تنظیمات زیر رو یدا کنید :
'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'),
'endpoint' => env('AWS_ENDPOINT'),
'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
'throw' => false,
],
تنظیم زیر رو اضافه کنیم:
'http' => [
'verify' => false
],
در نهایت میشه این :
'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'),
'endpoint' => env('AWS_ENDPOINT'),
'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
'throw' => false,
'http' => [
'verify' => false
],
],
در پایان هم دستور زیر یکبار اجرا کنید و دیگه خطارو دریافت نخواهید کرد.
php artisan config:clear