Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/liara-cloud/docs
Browse files Browse the repository at this point in the history
  • Loading branch information
gholi-dev committed Jan 23, 2024
2 parents ec39b26 + 3ab1b65 commit d00d36d
Show file tree
Hide file tree
Showing 3 changed files with 194 additions and 21 deletions.
129 changes: 108 additions & 21 deletions pages/app-features/file-system.js
Original file line number Diff line number Diff line change
@@ -1,55 +1,142 @@
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 () => (
<Layout>
<Head>
<title>مستندات فایل‌ سیستم - لیارا</title>
</Head>

<h1>فایل ‌سیستم</h1>
<h1>فایل ‌سیستم لیارا</h1>
<span className="page-description">(File System)</span>

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

<ul>
<li>
<a href="#liara_filesystem">فایل‌سیستم لیارا</a>
</li>
<li>
<a href="#tmp_directory">دایرکتوری tmp/</a>
</li>
<li>
<a href="#disks">دیسک‌ها</a>
</li>
<li>
<a href="#writable_filesystem">writable کردن فایل‌سیستم لیارا</a>
</li>
<li>
<a href="#maximum_writable_space">
حداکثر فضای write در فایل سیستم writable
</a>
</li>
<li>
<a href="#docker_nextjs_filesystem">پلتفرم‌های Docker و NextJS</a>
</li>
</ul>

<h2 id="liara_filesystem">فایل‌سیستم لیارا</h2>

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

<p>
این موضوع باعث افزایش امنیت و اطمینان برنامه‌تان می‌شود. چرا که اگر
نفوذگری قصد ایجاد تغییری ویران‌گر در فایل‌های پروژه‌تان را داشته باشد، با
شکست روبرو می‌شود.
</p>
<Asciinema id="readonly-file-system-error" />
<br></br>
<p>
بهترین روش برای آپدیت برنامه و ایجاد تغییرات در آن، این است که تغییرات در
لوکال انجام و سپس در لیارا مستقر شوند. با توجه به این که لیارا تنها
تغییرات جدید را منتقل می‌کند، پس جای نگرانی برای زمان‌بر بودن استقرار مجدد
نیز، وجود ندارد.
</p>

<h2 id="tmp_directory">
دایرکتوری <span className="code">/tmp</span>
</h2>

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

<h2 id="disks">دیسک‌ها</h2>
<p>
بهترین روش برای ایجاد چنین تغییراتی، این است که این تغییرات در لوکال انجام
و سپس در لیارا مستقر شوند. با توجه به این که لیارا تنها تغییرات جدید را
منتقل می‌کند، پس جای نگرانی برای زمان‌بر بودن استقرار مجدد وجود ندارد.
اگر که دایرکتوری <span className="code">/tmp</span> پاسخ‌گوی نیاز شما
نبود، چاره کار استفاده از دیسک‌ها در برنامه‌تان می‌باشد. به طور مثال قصد
ذخیره فایل‌های کاربران را دارید و نمی‌خواهید به هیچ وجه این فایل‌ها را حذف
کنید. در این شرایط به قسمت دیسک‌ها در برنامه‌تان مراجعه کنید و اقدام به
ایجاد دیسک کنید:{" "}
<Link href="/storage/disks/about">اطلاعات بیشتر درباره‌ی دیسک‌ها </Link>
</p>

<h2 id="writable_filesystem">writable کردن فایل‌سیستم لیارا</h2>
<p>
با وجود Read-Only بودن فایل سیستم برنامه‌های لیارا، دایرکتوری
<span className="code">/tmp</span> از این قاعده مستثنی است. می‌توانید از
این دایرکتوری که در همه پلن‌های ارائه شده، فضایی برابر 100 مگابایت دارد،
برای ذخیره سازی لاگ‌ها، فایل‌ها آپلودی موقتی و غیره استفاده کنید.
همانطور که قبل‌تر گفته شد، فایل‌سیستم لیارا به صورت پیش‌فرض، بر روی
read-only تنظیم شده است. اما شما می‌توانید به راحتی یک کلیک، فایل‌سیستم را
از read-only به writable تغییر دهید.
</p>
<p>
برای این کار، کافیست وارد قسمت تنظیمات برنامه خود شوید و سپس گزینه{" "}
<strong>فایل‌سیستم Read Only</strong> را غیر فعال کنید:
</p>
<ZoomableImage src="https://files.liara.ir/docs/filesystem/disable-read-only-filesystem.gif" />
<br></br>
<p>
پس از انجام این‌کار، شما قادر خواهید بود تا تغییرات جدیدی رو بر روی پروژه،
اعمال کنید:
</p>
<Asciinema id="writable-file-system" />
<br></br>
<p>
البته توجه داشته باشید که این تغییرات صرفاً موقتی هستند و پس از متوقف شدن
برنامه، به هر دلیلی (از جمله ری‌استارت شدن، استقرار مجدد و یا خاموش شدن)
ممکن است از بین بروند. و شما تا زمانی می‌توانید از این تغییرات استفاده
کنید که برنامه‌تان روشن و در حال اجرا، باشد.
</p>

<h2 id="maximum_writable_space">
حداکثر فضای write در فایل سیستم writable
</h2>
<p>
پس از این‌که فایل‌سیستم لیارا را از حالت Read-Only به Writable تغییر
می‌دهید؛ به صورت کلی 500 مگابایت فضای ذخیره‌سازی به برنامه شما تخصیص داده
می‌شود و شما می‌توانید تا سقف 500 مگابایت، داده جدید به برنامه خود در حالت
Writable اضافه کنید. هرچند که این تغییرات موقتی هستند و دائمی نیستند.
</p>
<Notice variant="info">
توجه داشته باشید که این 500 مگابایت فضای تخصیص داده شده، جدا از فضای
گرفته‌شده سورس کد پروژه شما است و شما افزون بر فضای اشغال‌شده سورس کد خود،
می‌توانید از 500 مگابایت فضای تخصیص داده شده، استفاده کنید.
</Notice>

<h2 id="docker_nextjs_filesystem">پلتفرم‌های Docker و NextJS</h2>
<p>
اما اگر این دایرکتوری پاسخ‌گوی نیاز شما نبود، چاره کار استفاده از دیسک‌ها
در برنامه‌تان می‌باشد. به طور مثال قصد ذخیره فایل‌های کاربران را دارید و
نمی‌خواهید به هیچ وجه این فایل‌ها را حذف کنید. در این شرایط به قسمت
دیسک‌ها در برنامه‌تان مراجعه کنید و اقدام به ایجاد دیسک کنید.
<br />
<Link href="/storage/disks/about">اطلاعات بیشتر درباره‌ی دیسک‌ها</Link>
بر خلاف پلتفرم‌های دیگر در لیارا، که به صورت پیش‌فرض، فایل‌سیستم Read-Only
دارند؛ فایل‌سیستم پلتفرم‌های{" "}
<Link href="/app-deploy/docker/getting-started/">Docker</Link> و{" "}
<Link href="/app-deploy/nextjs/getting-started/">NextJS</Link> به صورت
پیش‌فرض writable است و شما می‌توانید تغییرات موقتی را بدون انجام کار اضافی
دیگری، در پروژه خود، اعمال کنید.
</p>
</Layout>
);
40 changes: 40 additions & 0 deletions public/casts/readonly-file-system-error.cast
Original file line number Diff line number Diff line change
@@ -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# "]
46 changes: 46 additions & 0 deletions public/casts/writable-file-system.cast
Original file line number Diff line number Diff line change
@@ -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# "]

0 comments on commit d00d36d

Please sign in to comment.