پشتیبانگیری و فنی
فضای ذخیرهسازی S3 برای بکاند نرمافزار: فایل، عکس و ویدیو تا چند ترابایت
بهروزرسانی:
پاسخ کوتاه
برای نرمافزاری که فایل، عکس و ویدیو را از بکاند ذخیره میکند، فضای سازگار با S3 پوشه مناسب است: هر کتابخانهی S3 (AWS SDK، aws4fetch، boto3، MinIO client) با Endpoint پوشه و امضای SigV4 کار میکند، فایل تا ۵ گیگابایت در یک درخواست و بزرگتر با آپلود چندبخشی ذخیره میشود و دانلود با Range و لینک امضاشدهی موقت پشتیبانی میشود. ظرفیت پایهی پلن دژ با فضای افزوده تا چند ترابایت بالا میرود.

کدام سرویس پوشه برای بکاند؟
| نیاز | سرویس مناسب | نکته |
|---|---|---|
| ذخیرهی فایلهای بزرگ و ویدیو از سرور | فضای سازگار با S3 (پلن دژ) | تا ۵ گیگابایت در یک PUT؛ بزرگتر با multipart |
| نمایش عکس و پخش ویدیو در اپ | لینک امضاشدهی S3 (presigned GET) | Range برای جلو و عقب بردن ویدیو؛ مهلت لینک را خودتان تعیین میکنید |
| فایلهایی که کاربران پنل باید ببینند و به اشتراک بگذارند | REST API پوشه | پوشهبندی، لینک اشتراک، گزارش مشاهده؛ هر فایل تا سقف پلن (حداکثر ۵۰ مگابایت) |
| پشتیبان سرور و پایگاه داده | S3 با rclone یا restic | نسخهها را با ابزار پشتیبان نگه دارید |
اتصال از Node.js یا Cloudflare Workers
- در پنل پوشه (پلن دژ) یک باکت و یک کلید دسترسی بسازید؛ برای هر سرویس کلید جدا و در صورت امکان محدود به یک باکت.
- در AWS SDK v3: endpoint را نشانی S3 پوشه، region را us-east-1 و forcePathStyle را true بگذارید؛ PutObject، GetObject، multipart و getSignedUrl همانطور کار میکنند.
- در Cloudflare Workers از کتابخانهی aws4fetch (بدون وابستگی به Node) با همان Endpoint، کلید و region استفاده کنید؛ Worker درخواست را امضا و مستقیم به Endpoint پوشه میفرستد.
- برای نمایش عکس یا ویدیو به کاربران اپ، در بکاند لینک امضاشدهی GET با مهلت کوتاه بسازید و به اپ بدهید؛ پخش ویدیو با هدر Range جلو و عقب میرود.
- کلید محرمانه را فقط در متغیرهای محیطی سرور یا Secrets ورکر نگه دارید، نه در اپ موبایل یا مرورگر.
ظرفیت و ارتقا
پلن دژ با فضای پایه شروع میشود و برای ظرفیت بیشتر، فضای افزوده به فضای کاری اضافه میشود: هر افزایش تا ۱ ترابایت و جمع فضای افزوده تا ۵ ترابایت. ارتقا بدون جابهجایی داده انجام میشود و همان باکتها و کلیدها کار میکنند. قیمت فضای افزوده هنوز در صفحهی تعرفهها نیست؛ برای ظرفیت ترابایتی با پشتیبانی تماس بگیرید.
محدودیتها را بدانید
- دسترسی عمومی، میزبانی وب، CDN، نسخهگذاری، قفل شیء و قوانین چرخهی عمر پشتیبانی نمیشوند؛ فایلها فقط با کلید یا لینک امضاشده خوانده میشوند.
- CORS برای آپلود مستقیم از مرورگر فعال نیست؛ آپلود از بکاند یا Worker انجام شود.
- روی نشانی مسیردار (…/api/s3) هر درخواست تا ۶۰ مگابایت است؛ برای فایل بزرگتر از آپلود چندبخشی با بخشهای کوچکتر یا نشانی جداگانهی S3 (مثل s3.دامنه، اگر راهاندازی شده باشد) استفاده کنید.
- سرورها در دیتاسنترهای داخل ایراناند؛ دسترسی سرویسهایی که خارج از ایران اجرا میشوند (مثل Cloudflare Workers) به ارتباط بینالملل بستگی دارد و در قطعی اینترنت بینالملل قطع میشود. بکاندی که داخل ایران است در آن زمان هم وصل میماند.
- فقط امضای نسخهی ۴ (SigV4) پذیرفته میشود؛ تا ۱۰۰ باکت و ۲۰ کلید فعال در هر فضای کاری.
پرسشهای متداول
- سرویس شما S3-compatible است؟
- بله. فضای سازگار با S3 پوشه با امضای SigV4، آپلود چندبخشی، Range، کپی و لینک امضاشده کار میکند و AWS SDK v3، aws4fetch (کتابخانهی Cloudflare Workers)، aws cli، rclone و restic با آن آزموده شدهاند.
- از Cloudflare Workers میشود به آن وصل شد؟
- از نظر فنی بله، با aws4fetch و Endpoint پوشه. چون سرورها در ایراناند، این ارتباط در قطعی اینترنت بینالملل برقرار نیست؛ برای کار در آن شرایط بکاند را داخل ایران نگه دارید.
- برای ۱ یا ۲ ترابایت چه کنیم؟
- پلن دژ بهاضافهی فضای افزوده؛ جمع فضای افزوده تا ۵ ترابایت بالا میرود و ارتقا بدون جابهجایی داده است. برای قیمت با پشتیبانی تماس بگیرید.
- ویدیو را میشود مستقیم در اپ پخش کرد؟
- بله، با لینک امضاشدهی GET که بکاند میسازد؛ درخواستهای Range جواب 206 میگیرند تا پخشکننده جلو و عقب برود.


