پشتیبان‌گیری و فنی

فضای ذخیره‌سازی 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

  1. در پنل پوشه (پلن دژ) یک باکت و یک کلید دسترسی بسازید؛ برای هر سرویس کلید جدا و در صورت امکان محدود به یک باکت.
  2. در AWS SDK v3: endpoint را نشانی S3 پوشه، region را us-east-1 و forcePathStyle را true بگذارید؛ PutObject، GetObject، multipart و getSignedUrl همان‌طور کار می‌کنند.
  3. در Cloudflare Workers از کتابخانه‌ی aws4fetch (بدون وابستگی به Node) با همان Endpoint، کلید و region استفاده کنید؛ Worker درخواست را امضا و مستقیم به Endpoint پوشه می‌فرستد.
  4. برای نمایش عکس یا ویدیو به کاربران اپ، در بک‌اند لینک امضاشده‌ی GET با مهلت کوتاه بسازید و به اپ بدهید؛ پخش ویدیو با هدر Range جلو و عقب می‌رود.
  5. کلید محرمانه را فقط در متغیرهای محیطی سرور یا 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 می‌گیرند تا پخش‌کننده جلو و عقب برود.

در پوشه انجامش دهید