ذخیره‌ی داده‌ها در دیسک‌ها

(Disks)
توجه کنید که اگر قبلا از قابلیتvolumeاستفاده می‌کردید، این قابلیت منسوخ شده و به دیسک تغییر نام داده شده‌است. اما شما می‌توانید بدون نیاز به اقدامی، همچنان از همان قابلیت استفاده کنید.
برای مهاجرت ازvolumeبه دیسک‌ها، این بخش را مطالعه کنید.

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

برای مثال ممکن است یک پوشه با نامuploadsداشته باشید که می‌توانید آن را به عنوان دیسک تعریف کرده و دیگر نگران از بین رفتن فایل‌های درون این پوشه نباشید. در برنامه‌هایی که از Laravel به عنوان فریم‌ورک اصلی استفاده می‌کنید، ممکن است که پوشه‌یstorageرا به عنوان دیسک تعریف کنید. به همین ترتیب، در برنامه‌های جنگو پوشه‌یmediaرا.

برای استفاده از این قابلیت، Liara CLI باید دارای نسخه‌ی 2.4.0 یا بالاتر باشد. راهنمای ارتقا CLI

ساخت دیسک

برای این که بتوانید مسیر یک پوشه را به عنوان دیسک تعریف کنید، ابتدا لازم است که دیسک را با اندازه‌ی دلخواه‌تان از صفحه‌ی «دیسک‌ها» بسازید. اگر برای اولین‌بار وارد صفحه‌ی دیسک‌ها شوید، با چنین صفحه‌ای رو به رو می‌شوید:

صفحه‌ی خالی دیسک‌ها

با کلیک روی دکمه‌ی «ساخت دیسک» می‌توانید اولین دیسک‌تان را بسازید.

صفحه‌ی ساخت دیسک

همان‌طور که مشاهده می‌کنید، نام دیسک را در تصویر برابر باdisk1قرار داده‌ایم و اندازه‌ی آن را ۲ گیگابایت وارد کرده‌ایم. با کلیک روی دکمه‌ی «ساخت دیسک»، دیسک ساخته می‌شود و در صفحه‌ی دیسک‌ها قابل مشاهده است.

صفحه‌ی دیسک‌ها
توجه کنید که این دیسک در وضعیت «آماده به کار» قرار دارد و باید مسیر آن را از طریق فایل liara.json تعریف کنید تا به وضعیت «در حال استفاده» تغییر کند. در ادامه نحوه‌ی تعریف دیسک توضیح داده می‌شود.

به این نکته هم توجه داشته باشید که اگر دوباره به صفحه‌ی ساخت دیسک برگردیم، می‌توانیم دیسک‌های بیشتری را بسازیم. اما از آنجایی که قبلا دیسکی را ساخته‌ایم، الان فضای کمتری را برای ساخت دیسک خواهیم داشت که در تصویر زیر مشخص است. این فضا کاملا وابسته به پلن انتخابی شما برای برنامه‌تان است.

صفحه‌ی ساخت دیسک

تعریف مسیر دیسک

تعریف‌کردن مسیر دیسک به کمک فایل liara.json صورت می‌گیرد.

{
  "disks": [
    {
      "name": "disk1",
      "mountTo": "uploads"
    }
  ]
}

فیلد nameدر واقع همان نام دیسکی است که ساخته‌اید. فیلدmountToهم مسیر پوشه‌ای است که قصد دارید دیسک در آنجا قرار بگیرد و اصطلاحا mount شود. همان‌طور که در این نمونه مشاهده می‌کنید، این مسیر به صورت نسبی وارد شده است. در صورت تمایل، به صورت مطلق و از ریشه‌ی برنامه هم می‌توانید آدرس‌دهی کنید. البته آدرس‌دهی مطلق را توصیه نمی‌کنیم.

به عنوان مثالی دیگر، فرض کنید برای یک برنامه‌ی لاراولی قصد دارید که یک دیسک برای پوشه‌ی storage بسازید. در این صورت، از بخش دیسک‌ها یک دیسک با نام دلخواه مانندmydiskبسازید و بعد تنظیمات زیر را داخل فایلliara.jsonقرار داده و دیپلوی کنید:

{
  "disks": [
    {
      "name": "mydisk",
      "mountTo": "storage"
    }
  ]
}

تعریف چندین دیسک

در حالتی که ۲ یا چندین دیسک دارید، می‌توانید آن‌ها را مانند نمونه‌ی زیر تعریف کنید:

{
  "disks": [
    {
      "name": "disk1",
      "mountTo": "public/files"
    },
    {
      "name": "disk2",
      "mountTo": "storage/images"
    }
  ]
}

مهاجرت از volume به disks

نیازی به مطالعه‌ی این قسمت نیست، اگر قبلا از قابلیتvolumeاستفاده نمی‌کردید.

همان‌طور که پیش‌تر گفته شد، قابلیتvolumeمنسوخ شده و ممکن است بخواهید که به قابلیت جدیدdisksمهاجرت کنید. خوشبختانه این کار بسیار ساده‌است. نمونه‌ی زیر را در نظر بگیرید:

{
  "volume": "/var/www/html/storage"
}
حالا برای انتقال اینvolume، فقط کافیست که فایل liara.jsonرا به شکل زیر تغییر دهید:

{
  "disks": [
    {
      "name": "default",
      "mountTo": "/var/www/html/storage"
    }
  ]
}

در این حالت، نام دیسک را حتما بایدdefaultوارد کنید. حالا می‌توانید دستورliara deployرا اجرا کنید. در این مرحله، دیگر هشدار منسوخ‌شدن قابلیتvolumeرا مشاهده نخواهید کرد.