php

پلتفرم PHP

(PHP Platform)

اتصال به ذخیره‌سازی ابری

بدون شک اتصال برنامه به یک ذخیره‌سازی ابری مطمئن برای نگهداری و ارائه فایل‌های استاتیک وب‌سایت یا داده‌های آپلود شده توسط کاربران، باعث اطمینان خاطر صاحبان کسب و کار و بهبود عملکرد برنامه‌ می‌شود.

فهرست عناوین:

در صورتی که تمایلی به خواندن آموزش متنی ندارید می‌توانید ویدیوی آموزشی زیر ‌را مشاهده کنید.

نصب AWS SDK

از آنجا که ذخیره‌سازی ابری لیارا یک سرویس Object storage سازگار با پروتکل S3 است، شما می‌توانید با استفاده از AWS SDK‌، در زبان‌ها و فریم‌ورک‌های مختلفی این فضای ذخیره‌سازی را مدیریت کنید. حال برای اتصال به ذخیره‌سازی ابری در PHP باید با اجرای دستور زیر، پکیج aws-sdk را نصب کنید.

composer require aws/aws-sdk-php

تنظیم کلیدها

در مرحله‌ی بعد، به‌منظور امنیت و کنترل راحت‌تر مقادیر باید مشخصات فضای ذخیره‌سازی ابری اعم از کلیدها و آدرس اتصال به این سرویس را در بخش متغیرهای برنامه تنظیم کنید.

LIARA_ENDPOINT=<Liara Bucket Endpoint>
LIARA_BUCKET_NAME=<Bucket Name>
LIARA_ACCESS_KEY=<Access Key>
LIARA_SECRET_KEY=<Secret Key>

همچنین اگر باکت شما خصوصی باشد، برای دسترسی به باکت، نیاز به کلید دسترسی دارید. برای ساخت کلید، به صفحه ذخیره‌سازی ابری بروید و طبق عکس‌ها کلید خود را بسازید.

به قسمت کلیدها رفته:

یک کلید جدید بسازید.

کلید های ساخته شده را کپی کنید. توجه داشته باشید که SECRET_KEY تنها یک بار نمایش داده می‌شود و پس از آن باید کلید را درجایی مطمئن ذخیره کنید.

دریافت لیست باکت‌ها توسط AWS SDK

نمونه کد برای دریافت لیست باکت‌های ایجاد شده:

<?php
// Require the Composer autoloader.
require 'vendor/autoload.php';

use Aws\S3\S3Client;

// Instantiate an S3 client.
$client = new S3Client([
    'region' => 'us-east-1',
    'version' => '2006-03-01',
    'endpoint' => LIARA_ENDPOINT,
    'credentials' => [
        'key' => LIARA_ACCESS_KEY,
        'secret' => LIARA_SECRET_KEY
    ],
]);

$result = $client->listBuckets([/* ... */]);
$promise = $client->listBucketsAsync([/* ... */]);

print_r($result);
print_r($promise);

آپلود فایل توسط AWS SDK

نمونه کد برای آپلود فایل در باکت‌های ایجاد شده:

<?php
// Require the Composer autoloader.
require 'vendor/autoload.php';

use Aws\S3\S3Client;

// Instantiate an S3 client.
$client = new S3Client([
    'region' => 'us-east-1',
    'version' => '2006-03-01',
    'endpoint' => LIARA_ENDPOINT,
    'credentials' => [
        'key' => LIARA_ACCESS_KEY,
        'secret' => LIARA_SECRET_KEY
    ],
]);

try {
  $client->putObject([
      'Bucket' => 'my-bucket',
      'Key'    => 'my-object',
      'Body'   => fopen('/path/to/file', 'r')
  ]);
} catch (AwsS3ExceptionS3Exception $e) {
  echo "There was an error uploading the file.";
}

حذف فایل توسط AWS SDK

نمونه کد برای حذف فایل در باکت‌های ایجاد شده:

<?php
// Require the Composer autoloader.
require 'vendor/autoload.php';

use Aws\S3\S3Client;

// Instantiate an S3 client.
$client = new S3Client([
    'region' => 'us-east-1',
    'version' => '2006-03-01',
    'endpoint' => LIARA_ENDPOINT,
    'credentials' => [
        'key' => LIARA_ACCESS_KEY,
        'secret' => LIARA_SECRET_KEY
    ],
]);

$result = $client->deleteObject([
  'Bucket' => 'ExampleBucket',
  'Key' => 'HappyFace.jpg',
]);

شما می‌توانید برای کسب اطلاعات بیشتر، مثال‌ها و مستندات این پکیج را مطالعه کنید.


متوجه شدم، برو گام بعدی!
;