# شروع کار با فایل‌ها، ذخیره‌سازی و رمزگذاری

> مسیری راهنما از «این فایل را کجا بگذارم؟» تا اثبات اینکه داده‌هایتان نگه داشته می‌شوند: پیوندهایی که چون محتوا را نام می‌برند همیشه کار می‌کنند، هم‌رسانی و به‌روزرسانی، مخزن‌های رمزشدهٔ سرتاسری، و سنجیدن Zaryn بی‌آنکه به آن اعتماد کنید. اول تصویر، هر گام با توضیح.

Source: https://zaryn.xyz/docs/fa/get-started-storage

فایل‌ها، داده‌ها و رازها: هر کدام را کجا نگه دارید، چطور هم‌رسانی کنید، چطور قفلش کنید و چطور بسنجید که واقعاً نگه داشته می‌شود. صفحهٔ Storage ([zaryn.xyz/storage](/storage)) جایی است که هر چه روی Zaryn نگه می‌دارید یک‌جا جمع می‌شود.

## ۱. سه جا برای نگه داشتن

```diagram
type: cards
title: چه چیزی کجا می‌رود
---
🔗 | فایل‌هایی که با پیوند هم‌رسانی می‌کنید | یک PDF، یک ویدیو، یک خروجی ساخت: بارگذاری کنید، پیوند را بفرستید، برای باز کردن حساب لازم نیست | accent
📁 | مخزن‌ها | پروژه‌ای با همهٔ نسخه‌ها: کد، پایان‌نامه، دیتاست، مدل. عمومی، خصوصی یا رمزشده | good
📦 | بسته‌ها و ایمیج‌ها | چیزهایی که نرم‌افزارها نصب می‌کنند: npm، PyPI، Cargo، Zig، کانتینر |
```

قاعدهٔ سرانگشتی: **یک فایل برای دادن به کسی** ← پیوند؛ **کاری که با زمان عوض می‌شود** ← مخزن؛ **چیزی که نرم‌افزار نصب می‌کند** ← [بسته](/docs/fa/packages).

## ۲. پیوندی به محتوا، نه به یک مکان

```diagram
type: graph
title: بایت‌های یکسان، نام یکسان، هر جا
alt: بایت‌های یک فایل به CID آن هش می‌شوند؛ پیوند CID را نام می‌برد، پس هر gateway یا نود IPFS دقیقاً همان فایل را می‌دهد، و فایل تغییرکرده CID دیگری می‌گیرد
legend: path=باز می‌کند
height: 36
---
node file | report.pdf | 10 18 | file | accent | بایت‌هایش، همان‌طور که بارگذاری شد
node cid | bafy…fbzdi | 42 18 | hash | good | CID آن: اثر انگشت بایت‌ها. یک بایت را عوض کنید، CID دیگری می‌گیرید
node gw1 | ipfs.io | 80 6 | cloud | | یک gateway عمومی
node gw2 | هر نود IPFS | 80 30 | storage | | یا نود خودتان: CID همه‌جا یکی است
link file cid | هش | path
link cid gw1 | | path
link cid gw2 | | path2
```

هر چه Zaryn نگه می‌دارد با **محتوایش** نام می‌گیرد: هشی از بایت‌ها به نام **CID**. پیوندی که یک CID را نام می‌برد فقط می‌تواند همان بایت‌ها را باز کند. هیچ‌کس، از جمله Zaryn، نمی‌تواند فایل پشت آن را عوض کند، و هر نود IPFS می‌تواند آن را بدهد، نه فقط Zaryn.

## ۳. عمومی، خصوصی یا رمزشده

```diagram
type: flow
title: چقدر باید خصوصی باشد؟
or: یا
---
عمومی | فایل‌های هم‌رسانی‌شده و مخزن‌های عمومی: هر کسی با پیوند می‌تواند بخواند | | 🌐
? مخزن خصوصی | فقط شما و کسانی که دعوت می‌کنید؛ Zaryn برای نشان دادن به آن‌ها می‌تواند بخواندش
~ خصوصی‌تر
مخزن رمزشده | روی رایانهٔ شما رمز می‌شود: فقط دستگاه‌های شما کلید دارند، نه Zaryn | good | 🔐
```

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

## ۴. یک فایل را با پیوند هم‌رسانی کنید

```diagram
type: flow
title: سه کلیک
---
باز کردن Storage | در منوی بالا، یا zaryn.xyz/storage | | 🗂
~ رها کردن فایل
بارگذاری‌شده | CID خودش را می‌گیرد، با رسیدی امضاشده از سرور | accent | ⇡
~ Copy link
فرستاده‌شده | هر کس پیوند را بگیرد بازش می‌کند؛ حساب لازم نیست | good | 🔗
```

فایل‌هایتان زیر **My files** فهرست می‌شوند، تازه‌ترین اول، با **Copy link** و **Open** کنار هر کدام. پیوند این شکلی است: `https://ipfs.io/ipfs/bafy…?filename=report.pdf`.

## ۵. نسخهٔ تازه یعنی پیوند تازه

```diagram
type: history
title: هر نسخه، پیوند خودش
start: نسخهٔ ۱
---
branch report.pdf | accent
commit v1 report.pdf | bafy…fbzdi | info پیوندی که فرستادید برای همیشه دقیقاً همین را باز می‌کند
step یک غلط تایپی را درست و دوباره بارگذاری می‌کنید | بایت‌های تازه، CID تازه، پیوند تازه. پیوند قدیمی همچنان نسخهٔ ۱ را باز می‌کند.
commit v2 report.pdf | bafy…k3q7a | info پیوندی تازه برای نسخهٔ تازه
```

این یک امکان است، نه محدودیت: پیوندی در یک ایمیل، مقاله یا قرارداد همیشه همان چیزی را نشان می‌دهد که هنگام فرستادن بود. بارگذاری دوبارهٔ همان فایل فقط یک بار فضا می‌گیرد.

## ۶. یک نشانی که همیشه تازه‌ترین را نشان می‌دهد

```diagram
type: flow
title: نشانی‌ای که می‌توانید به‌روزش کنید (IPNS)
---
یک نام | زیر Advanced در صفحهٔ Storage: یک نشانی، از آنِ شما | accent | 🏷
~ اشاره می‌کند به
نسخهٔ ۱ | امروز bafy…fbzdi را باز می‌کند | | 📄
~ به‌روزرسانی منتشر می‌کنید
نسخهٔ ۲ | همان نشانی حالا bafy…k3q7a را باز می‌کند | good | 📄
```

وقتی واقعاً «همیشه تازه‌ترین» را می‌خواهید (یک صفحهٔ دانلود، دیتاستی که تازه می‌شود)، یک **نشانی IPNS** به کار ببرید. برای برداشتن یک فایل، منوی ▾ آن را باز کنید و **Stop hosting** را بزنید. نسخه‌هایی که دیگران ساخته‌اند شاید تا مدتی کار کنند: دلیل دیگری که چیزهای خصوصی جایشان اینجا نیست.

## ۷. یک مخزن را رمزگذاری کنید

```diagram
type: flow
title: پیش از نخستین push، به همین ترتیب
---
خصوصی | `zev new`، گزینهٔ private، هنوز چیزی push نشده | | 🔒
~ zev encrypt on
رمزشده | از این پس محتوای فایل‌ها روی رایانهٔ شما رمز می‌شود | accent | 🔐
~ zev encrypt recovery
کد بازیابی | یک بار نشان داده می‌شود: یادداشتش کنید | warn | 🧾
~ zev push
ارسال‌شده | Zaryn چیزی را نگه می‌دارد که نمی‌تواند بخواند | good | ⇡
```

```bash
zev new                 # choose "private"
zev encrypt on
zev encrypt recovery    # write the code down, or keep it in a password manager
zev push
```

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

## ۸. هم‌تیمی‌ها و دستگاه‌هایشان

```diagram
type: graph
title: چه کسی چه چیزی را می‌تواند بخواند
alt: لپ‌تاپ شما و لپ‌تاپ هم‌تیمی کلید دارند؛ Zaryn فقط محتوای رمزشده نگه می‌دارد؛ مرورگری که تأیید کرده‌اید می‌تواند فایل‌ها را نشان دهد
legend: path=فایل‌های رمزشده; path2=کلید، برای هر دستگاه
height: 40
---
node me | لپ‌تاپ شما | 12 10 | laptop | accent | کلید را دارد
node tm | لپ‌تاپ هم‌تیمی | 12 32 | laptop | good | کلید را با `zev encrypt share` می‌گیرد
node z | Zaryn | 50 20 | cloud | | محتوایی را نگه می‌دارد و می‌دهد که نمی‌تواند بخواند
node web | مرورگری که تأیید کرده‌اید | 88 20 | user | | `zev encrypt approve <fingerprint>`: فقط روی صفحهٔ شما رمزگشایی می‌کند
link me z | رمزشده | path
link tm z | کلید برای این دستگاه | path2
link z web | | path
```

1. آن شخص را روی Zaryn به همکاران اضافه کنید.
2. او دستگاهش را ثبت می‌کند: `zev clone you/project` (یا `zev encrypt unlock` در یک نسخهٔ موجود).
3. هر کسی که کلید دارد `zev encrypt share` را اجرا می‌کند. از آن پس pull و push او خودشان رمزگذاری و رمزگشایی می‌کنند.

برای خواندن فایل‌های رمزشده در وب‌سایت، آن مرورگر را از دستگاهی که کلید دارد تأیید کنید. سرور Zaryn همچنان هرگز آن‌ها را نمی‌بیند.

## ۹. لپ‌تاپی گم‌شده، لپ‌تاپی تازه

```diagram
type: flow
title: اول کلید را عوض کنید، بعد بازیابی
or: یا
---
گم‌شده یا رفتنی | دستگاه یا شخص را روی Zaryn حذف کنید | bad | ✂
~ zev encrypt rotate
کلید تازه | برای هر چه از این پس push می‌شود؛ دستگاه‌هایی که هنوز عضوند آن را می‌گیرند | accent | 🔑
~ روی رایانهٔ تازه
هم‌تیمی هم‌رسانی می‌کند | `zev clone`، سپس کسی `zev encrypt share` را اجرا می‌کند | good | 🤝
? به‌تنهایی | `zev encrypt unlock --recovery XXXX-…` با کد بازیابی‌تان | warn
```

اگر همهٔ دستگاه‌ها **و** کد بازیابی را از دست بدهید، هیچ‌کس، از جمله Zaryn، نمی‌تواند فایل‌ها را باز کند. این بهای رمزگذاری سرتاسری واقعی است.

## ۱۰. آخرین push خود را بسنجید، بی اعتماد به ما

```diagram
type: sequence
title: zev verify-storage چه چیزهایی را می‌سنجد
lanes: zev | Zaryn | لاگ شفافیت
alt: Zaryn هر شیء را دوباره می‌خواند و رسیدی امضا می‌کند؛ zev می‌سنجد که push در رسید هست، امضا درست است و رسید در لاگ شفافیت عمومی ثبت شده
---
note Zaryn : هر شیء را با هشش دوباره می‌خواند و رسیدی امضا می‌کند | good
zev -> Zaryn : آخرین رسید
note zev : همهٔ اشیای آخرین push من فهرست شده؟ امضا از Zaryn است؟
zev -> لاگ شفافیت : این رسید ثبت شده؟
لاگ شفافیت --> zev : بله، و بعداً عوض نمی‌شود
```

```bash
zev verify-storage
```

هر گام با ریاضی است، نه با حرف Zaryn. اگر یکی شکست بخورد، zev می‌گوید کدام. همین بررسی از تنظیمات مخزن در مرورگرتان هم اجرا می‌شود: **Verify, without trusting Zaryn**.

## ۱۱. چند بایت از یک فایل بزرگ، باز هم اثبات‌شده

```diagram
type: flow
title: خواندن بخشی از یک فایل بزرگ
---
درخواست | `zev fetch-range <hash> <start> <length>` | | ⇣
~ Zaryn می‌فرستد
آن بخش | فقط همان بایت‌ها، با اثباتی که از آن شیء‌اند | accent | 🧩
~ zev می‌سنجد
اثبات‌شده | در برابر هش کل فایل، بی‌آنکه بقیه دانلود شود | good | ✓
```

نمونه‌ای از یک دیتاست یا مدل چندگیگابایتی، سنجیده‌شده انگار همه‌اش را دانلود کرده‌اید.

## ۱۲. داده‌های شما چطور نگه داشته می‌شوند

```diagram
type: cards
---
#️⃣ | نام‌گذاری با محتوا | هر آسیبی همیشه پیداست: بایت‌ها دیگر با نامشان نمی‌خوانند | accent
⧉ | دو نسخه، بررسی روزانه | بررسی روزانه هر نسخه را از روی دیگری ترمیم می‌کند | good
🧱 | کدگذاری پاک‌شدگی | سیاست resilient فایل‌های بزرگ را روی چند سرور پخش می‌کند |
📌 | پین‌شده روی IPFS | فایل‌های هم‌رسانی‌شده پین می‌شوند؛ پریمیوم روی همهٔ همتاهای خوشه پین می‌کند | good
```

بیشتر در [ذخیره‌سازی بررسی‌پذیر](/docs/fa/verified-storage) و [پین کردن و IPFS Cluster](/docs/fa/pinning-and-cluster).

## ۱۳. از اسکریپت‌ها و عامل‌ها

```bash
# upload: the response has the CID, a ready link and a signed receipt
curl -X POST "https://api.zaryn.xyz/v1/pins?name=report.pdf" \
  -H "Authorization: Bearer $ZARYN_TOKEN" --data-binary @report.pdf

curl -H "Authorization: Bearer $ZARYN_TOKEN" https://api.zaryn.xyz/v1/pins          # your files and space
curl -X DELETE -H "Authorization: Bearer $ZARYN_TOKEN" https://api.zaryn.xyz/v1/pins/<cid>
```

یک توکن با دسترسی `pin:write` کافی است. رسید هر بارگذاری (کدام فایل، چه اندازه، کی) را هر کسی بعداً می‌تواند بسنجد.

## ۱۴. فضا، و قدم بعدی

```diagram
type: stats
title: طرح رایگان
---
20 GB | فایل‌های هم‌رسانی‌شده با پیوند | پس از حذف تکرار | |
2 GB | مخزن‌ها | هر فایل تا ۲۵۰ مگابایت | | accent
500 MB | بسته‌ها و ایمیج‌ها | آینه‌ها هرگز حساب نمی‌شوند | |
```

نوارهای صفحهٔ Storage پس از ۷۵٪ کهربایی می‌شوند و Zaryn وقتی به سقف برسید خبرتان می‌کند. بیشتر لازم دارید؟ [طرح‌ها](/docs/fa/billing-and-credits). بعد: [نگه داشتن فایل‌ها](/docs/fa/storing-files)، [مخزن‌های رمزشده](/docs/fa/encrypted-repositories) و [ذخیره‌سازی بررسی‌پذیر](/docs/fa/verified-storage) با جزئیات.
