diff --git a/pages/app-features/file-system.js b/pages/app-features/file-system.js index e4164e16..0f645a31 100644 --- a/pages/app-features/file-system.js +++ b/pages/app-features/file-system.js @@ -1,6 +1,9 @@ import Head from "next/head"; import Link from "next/link"; import Layout from "../../components/Layout"; +import Asciinema from "../../components/Asciinema"; +import ZoomableImage from "../../components/ZoomableImage"; +import Notice from "../../components/Notice"; export default () => ( @@ -8,13 +11,47 @@ export default () => ( مستندات فایل‌ سیستم - لیارا -

فایل ‌سیستم

+

فایل ‌سیستم لیارا

(File System)

- فایل سیستم برنامه‌های لیارا Read-Only یا فقط خواندنی است، به عبارتی بعد از - استقرار برنامه‌تان تنها می‌توانید فایل‌ها و دایرکتوری‌ها را مشاهده کنید و - امکان ایجاد هیچ گونه تغییری در آن‌‌ها وجود ندارد. + فایل‌سیستم به ساختار و نظمی اشاره دارد که برای ذخیره، + سازماندهی، و دسترسی به داده‌ها استفاده می‌شود. این ساختار تعیین کننده + نحوه‌ی ذخیره‌سازی فایل‌ها و دایرکتوری‌ها، سطح دسترسی به آنها، و روابط بین + آنها است. به عبارتی دیگر، فایل‌سیستم به کاربران و برنامه‌ها امکان می‌دهد + تا با داده‌ها به صورت منظم و سازمان‌یافته، ارتباط برقرار کنند. +

+ + + +

فایل‌سیستم لیارا

+ +

+ فایل‌سیستم برنامه‌های لیارا به صورت پیش‌فرض، پس از ایجاد برنامه، Read-Only + یا فقط خواندنی است. به عبارتی، پس از استقرار برنامه‌ی خود در لیارا، فقط + می‌توانید فایل‌ها و دایرکتوری‌ها را مشاهده کنید و امکان ایجاد هیچ‌گونه + تغییری در آن‌ها وجود ندارد.

@@ -22,34 +59,84 @@ export default () => ( نفوذگری قصد ایجاد تغییری ویران‌گر در فایل‌های پروژه‌تان را داشته باشد، با شکست روبرو می‌شود.

+ +

+

+ بهترین روش برای آپدیت برنامه و ایجاد تغییرات در آن، این است که تغییرات در + لوکال انجام و سپس در لیارا مستقر شوند. با توجه به این که لیارا تنها + تغییرات جدید را منتقل می‌کند، پس جای نگرانی برای زمان‌بر بودن استقرار مجدد + نیز، وجود ندارد. +

+ +

+ دایرکتوری /tmp +

- پیش‌تر کاربران لیارا می‌توانستند از طریق خط فرمان، به برنامه‌شان متصل شوند - و تغییرات مورد نیاز و یا فایل‌های مد نظرشان را ایجاد کنند. اما این نکته - همیشه وجود داشت که این تغییرات لایو، موقتی هستند و بعد از یک ری‌استارت یا - استقرار جدید، از بین خواهند رفت. + با وجود Read-Only بودن فایل سیستم برنامه‌های لیارا، دایرکتوری + /tmp از این قاعده مستثنی است. می‌توانید از + این دایرکتوری که در همه پلن‌ها ارائه شده است و فضایی برابر 100 مگابایت + دارد، برای ذخیره سازی لاگ‌ها، فایل‌های آپلودی موقتی و غیره استفاده کنید.

+

دیسک‌ها

- بهترین روش برای ایجاد چنین تغییراتی، این است که این تغییرات در لوکال انجام - و سپس در لیارا مستقر شوند. با توجه به این که لیارا تنها تغییرات جدید را - منتقل می‌کند، پس جای نگرانی برای زمان‌بر بودن استقرار مجدد وجود ندارد. + اگر که دایرکتوری /tmp پاسخ‌گوی نیاز شما + نبود، چاره کار استفاده از دیسک‌ها در برنامه‌تان می‌باشد. به طور مثال قصد + ذخیره فایل‌های کاربران را دارید و نمی‌خواهید به هیچ وجه این فایل‌ها را حذف + کنید. در این شرایط به قسمت دیسک‌ها در برنامه‌تان مراجعه کنید و اقدام به + ایجاد دیسک کنید:{" "} + اطلاعات بیشتر درباره‌ی دیسک‌ها

+

writable کردن فایل‌سیستم لیارا

- با وجود Read-Only بودن فایل سیستم برنامه‌های لیارا، دایرکتوری - /tmp از این قاعده مستثنی است. می‌توانید از - این دایرکتوری که در همه پلن‌های ارائه شده، فضایی برابر 100 مگابایت دارد، - برای ذخیره سازی لاگ‌ها، فایل‌ها آپلودی موقتی و غیره استفاده کنید. + همانطور که قبل‌تر گفته شد، فایل‌سیستم لیارا به صورت پیش‌فرض، بر روی + read-only تنظیم شده است. اما شما می‌توانید به راحتی یک کلیک، فایل‌سیستم را + از read-only به writable تغییر دهید. +

+

+ برای این کار، کافیست وارد قسمت تنظیمات برنامه خود شوید و سپس گزینه{" "} + فایل‌سیستم Read Only را غیر فعال کنید: +

+ +

+

+ پس از انجام این‌کار، شما قادر خواهید بود تا تغییرات جدیدی رو بر روی پروژه، + اعمال کنید: +

+ +

+

+ البته توجه داشته باشید که این تغییرات صرفاً موقتی هستند و پس از متوقف شدن + برنامه، به هر دلیلی (از جمله ری‌استارت شدن، استقرار مجدد و یا خاموش شدن) + ممکن است از بین بروند. و شما تا زمانی می‌توانید از این تغییرات استفاده + کنید که برنامه‌تان روشن و در حال اجرا، باشد. +

+ +

+ حداکثر فضای write در فایل سیستم writable +

+

+ پس از این‌که فایل‌سیستم لیارا را از حالت Read-Only به Writable تغییر + می‌دهید؛ به صورت کلی 500 مگابایت فضای ذخیره‌سازی به برنامه شما تخصیص داده + می‌شود و شما می‌توانید تا سقف 500 مگابایت، داده جدید به برنامه خود در حالت + Writable اضافه کنید. هرچند که این تغییرات موقتی هستند و دائمی نیستند.

+ + توجه داشته باشید که این 500 مگابایت فضای تخصیص داده شده، جدا از فضای + گرفته‌شده سورس کد پروژه شما است و شما افزون بر فضای اشغال‌شده سورس کد خود، + می‌توانید از 500 مگابایت فضای تخصیص داده شده، استفاده کنید. + +

پلتفرم‌های Docker و NextJS

- اما اگر این دایرکتوری پاسخ‌گوی نیاز شما نبود، چاره کار استفاده از دیسک‌ها - در برنامه‌تان می‌باشد. به طور مثال قصد ذخیره فایل‌های کاربران را دارید و - نمی‌خواهید به هیچ وجه این فایل‌ها را حذف کنید. در این شرایط به قسمت - دیسک‌ها در برنامه‌تان مراجعه کنید و اقدام به ایجاد دیسک کنید. -
- اطلاعات بیشتر درباره‌ی دیسک‌ها + بر خلاف پلتفرم‌های دیگر در لیارا، که به صورت پیش‌فرض، فایل‌سیستم Read-Only + دارند؛ فایل‌سیستم پلتفرم‌های{" "} + Docker و{" "} + NextJS به صورت + پیش‌فرض writable است و شما می‌توانید تغییرات موقتی را بدون انجام کار اضافی + دیگری، در پروژه خود، اعمال کنید.

); diff --git a/public/casts/readonly-file-system-error.cast b/public/casts/readonly-file-system-error.cast new file mode 100644 index 00000000..fd03c5b9 --- /dev/null +++ b/public/casts/readonly-file-system-error.cast @@ -0,0 +1,40 @@ +{"version": 2, "width": 120, "height": 30, "timestamp": 1705925893, "idle_time_limit": 1.0, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}} +[0.048143, "o", "\u001b[?2004h\u001b]0;\u0007\u001b[\u001b[00m\u001b[01;34m\u001b[00m"] +[92.762076, "o", "\u001b[?2004hroot@13fd5a7d99bd:/usr/src/app# "] +[95.430445, "o", "e"] +[96.748817, "o", "c"] +[96.904515, "o", "h"] +[97.10247, "o", "o"] +[97.37324, "o", " "] +[98.435924, "o", "\""] +[98.958459, "o", "h"] +[99.110374, "o", "i"] +[99.937701, "o", ","] +[100.165658, "o", " "] +[100.337753, "o", "t"] +[100.467942, "o", "h"] +[100.631223, "o", "i"] +[100.873526, "o", "s"] +[101.132938, "o", " "] +[101.394722, "o", "i"] +[101.558066, "o", "s"] +[101.675082, "o", " "] +[102.047739, "o", "a"] +[102.165439, "o", " "] +[102.646426, "o", "t"] +[102.763986, "o", "e"] +[102.972257, "o", "s"] +[103.089534, "o", "t"] +[104.007173, "o", "\""] +[104.130032, "o", " "] +[104.873545, "o", ">"] +[104.99139, "o", " "] +[106.072386, "o", "t"] +[106.190047, "o", "e"] +[106.49935, "o", "x"] +[106.966801, "o", "t"] +[107.667646, "o", "."] +[108.071319, "o", "t"] +[108.188549, "o", "x"] +[108.306859, "o", "t"] +[109.083501, "o", "\r\r\n\u001b[?2004l\rbash: text.txt: Read-only file system\r\r\n\u001b[?2004hroot@13fd5a7d99bd:/usr/src/app# "] diff --git a/public/casts/writable-file-system.cast b/public/casts/writable-file-system.cast new file mode 100644 index 00000000..945f4039 --- /dev/null +++ b/public/casts/writable-file-system.cast @@ -0,0 +1,46 @@ +{"version": 2, "width": 117, "height": 65, "timestamp": 1705928731, "idle_time_limit": 1.0, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}} +[0.047106, "o", "\u001b[?2004h\u001b]0;\u0007\u001b[01;32m\u001b[00m\u001b[01;34m\u001b[00m"] +[81.479029, "o", "\u001b[?2004hroot@e4ef4063c9da:/usr/src/app# "] +[83.146038, "o", "e"] +[84.174394, "o", "c"] +[84.174603, "o", "ho"] +[84.345251, "o", " "] +[85.540361, "o", "\""] +[86.099707, "o", "h"] +[86.82372, "o", "i"] +[86.824493, "o", ","] +[86.825509, "o", " "] +[87.207401, "o", "t"] +[87.335667, "o", "h"] +[87.33578, "o", "is"] +[87.51593, "o", " "] +[87.641706, "o", "i"] +[87.771086, "o", "s"] +[87.975128, "o", " "] +[88.43924, "o", "a"] +[88.872747, "o", " "] +[89.172506, "o", "tes"] +[89.172761, "o", "t"] +[91.311028, "o", "\""] +[92.242146, "o", " "] +[92.573637, "o", ">"] +[92.808056, "o", " "] +[93.3636, "o", "t"] +[93.554555, "o", "e"] +[93.730651, "o", "x"] +[94.236227, "o", "t"] +[94.415619, "o", "."] +[95.277249, "o", "t"] +[95.397454, "o", "x"] +[95.537396, "o", "t"] +[98.231646, "o", "\r\r\n\u001b[?2004l\r"] +[98.231814, "o", "\u001b[?2004hroot@e4ef4063c9da:/usr/src/app# "] +[100.043553, "o", "c"] +[100.31446, "o", "a"] +[100.433226, "o", "t"] +[100.601234, "o", " "] +[101.394855, "o", "t"] +[102.26359, "o", "e"] +[102.263751, "o", "x"] +[102.680116, "o", "t.txt "] +[103.711078, "o", "\r\r\n\u001b[?2004l\rhi, this is a test\r\r\n\u001b[?2004hroot@e4ef4063c9da:/usr/src/app# "] \ No newline at end of file