مفاهیم پیش‌نیاز

باکت (Bucket) یا فضای ذخیره‌سازی ابری مبتنی بر S3، یک سرویس قدرتمند برای ذخیره‌سازی و بازیابی هر نوع داده است؛ از فایل‌های وب‌سایت گرفته تا بک‌آپ‌ها، خروجی نرم‌افزارها، و دارایی‌های ابری.

بر خلاف مدل‌هایی مانند File Storage (ذخیره‌سازی سلسله‌مراتبی مثل Windows Explorer) یا Block Storage (تقسیم داده به بلوک‌های کوچک با سرعت بالا)، فضای ذخیره‌سازی S3 داده‌ها را به‌صورت آبجکت (Object) ذخیره می‌کند. این مدل، مزایای هر دو مدل قبلی را در کنار قابلیت‌های منحصربه‌فرد ارائه می‌دهد.

هر آبجکت شامل داده اصلی، فراداده (Metadata)، و یک شناسه منحصربه‌فرد است که امکان دسته‌بندی و دسترسی سریع‌تر را فراهم می‌کند؛ چه برای توسعه‌دهندگان و چه برای سیستم‌های خودکار.

آبجکت‌ها

منابع (resources) در باکت‌ها به صورت آبجکت‌ها ذخیره می شوند. تفاوت آبجکت‌ها با فایل‌های این است که دارای فراداده هستند. فراداده‌ها به ما در مدیریت و دسته‌بندی بهتر آبجکت‌ها یاری می‌دهند. هر آبجکت‌ پس از ایجاد شدن (مانند آپلود یک فایل، ایجاد پوشه جدید و ...) دارای فراداده‌هایی است که توسط سیستم اختصاص داده می‌شود هست. افزون بر آن دارای فراداده‌های دیگر مانند زمان ایجاد و ... نیز می باشد. نوع دیگر فراداده توسط کاربران به صورت برچسب (tag) به آن‌ها اختصاص می شود.

فراداده‌ها (metadata)

فراداده‌های سیستمی و فراداده‌های کاربر دو نوع فراداده هستند که در سیستم‌ ذخیره سازی ابری به هر آبجکت اختصاص داده می‌شوند. فراداده‌های سیستمی (مثل: Last-Modified ،Content-Type ،ETag ،ID ، ... )، که هنگام ایجاد یا آپلود خودکار تعیین می‌شوند و فراداده‌های کاربر به صورت برچسب (tag) با توجه به نیاز، به آن‌ها مقدار و یک کلید تعلق می‌گیرد. از این اطلاعات می‌توان برای دسته‌بندی و مدیریت بهتر آبجکت‌ها استفاده کرد.

فراداده‌های سیستمی

این اطلاعات یکتا و به منظور کنترل توسط سیستم به صورت خودکار ایجاد شده‌اند. می‌توانند توسط کاربر مورد استفاده قرارگیرد.

برچسب (Tag)

برچسب‌ها، یک جفت کلید-مقدار (Key-Value) هستند که برای استفاده در دسته‌بندی، شناسایی، سازمان‌دهی باکت‌ها و مدیریت دسترسی به باکت اختصاص داده می‌شود.

حداکثر مقدار برچسب‌ها برای هر منبع ۵۰ عدد است.

هر منبع (resource) یک مقدار یکتا برای کلید (key) و هر کلید فقط یک مقدار (value) میتواند داشته باشد.

چند عنوان برچسب Key: Value با توضیحات:

کلیدمقدارتوضیحات نامگذاری برچسب
EnvironmentProductionمدیریت اطلاعات مربوط به محیط‌های توسعه
BusinessUnitMarketingداده‌های مربوط به بخش بازاریابی واحد تجاری
Department234اطلاعات مربوط به دپارتمان‌ها و دپارتمان شماره 234

دیتا سنتر یا موقعیت (Data Center)

دیتاسنترها محل فیزیکی نگهداری سخت‌افزار‌ها هستند.

کوبیت به شما امکان ذخیره داده‌هایتان در دو موقعیت یا دیتا سنتر (Data Center) متفاوت در مکان‌های متفاوتی را می‌دهد. این به شما مزیتی می‌دهد تا در صورتی که دسترسی به یک موقعیت مختل شد، از دیگری بدون اختلال استفاده کنید.

برای ایجاد یک فضای جدید ابتدا ابتدا نیاز است موقعیت را انتخاب کنیم. دیتاسنترها شامل:

  • دیتا سنتر Navid
  • دیتا سنتر Azadi

می‌باشند.

فضا

فضا در کوبیت، یک موجودیت منطقی و مستقل برای مدیریت منابع ذخیره‌سازی است که با یک S3 User متناظر است. یعنی هر فضا، یک حساب کاربری (Access Key/Secret Key) در سامانه ذخیره‌سازی شی‌ءگرا (Object Storage) مانند MinIO یا Amazon S3 دارد.

  • این S3 User دارای مجوزها و دسترسی‌های خاص خود به باکت‌ها (Buckets) است.
  • هر فضا می‌تواند شامل چندین باکت باشد، که تمام آن‌ها تحت مالکیت و مدیریت همین فضای خاص هستند.
  • فضاها به گونه‌ای طراحی شده‌اند که امکان تفکیک نوع داده‌ها، محدودسازی دسترسی، و کنترل مصرف منابع را فراهم کنند.

نکات فنی مهم

  • هنگام ایجاد یک فضا در کوبیت، در پشت‌صحنه یک S3 User با AccessKey/SecretKey منحصر به فرد ایجاد می‌شود.
  • تمامی درخواست‌های آپلود و دانلود داده از طریق این کلیدها انجام می‌شود.
  • مدیریت سطح دسترسی از طریق بخش سرویس اکانت‌ها انجام می‌شود.

باکت (Bucket)

باکت محل ذخیره‌ی آبجکت‌ها (Object) است و به‌عنوان زیرمجموعه‌ای از یک فضا (Space) تعریف می‌شود. برخلاف فضا که مفهومی ساده و مسطح دارد (فاقد ساختار پوشه‌ای تو در تو)، باکت‌ها امکان سازمان‌دهی سلسله‌مراتبی داده‌ها را فراهم می‌کنند. درون هر باکت می‌توان پوشه‌های تو در تو ایجاد کرد و داده‌های متنوع را به‌صورت ساختاریافته ذخیره نمود.

مدیریت فایل‌ها در باکت‌ها مشابه سیستم فایل سنتی (مثل ویندوز یا لینوکس) است، اما با مزایای مدل آبجکت‌محور. می‌توان با استفاده از برچسب‌ها (Tags) فایل‌ها را در دسته‌های متفاوت قرار داد که این ویژگی، برای سناریوهای پیچیده و نیاز به جستجو و فیلتر پیشرفته بسیار مفید است.

سرویس اکانت (Service Account)

سرویس اکانت را برای مشخص سازی سطح دسترسی عمومی کاربران می‌سازیم. این ویژگی به شما اجازه می‌دهد دسترسی‌های مختلف را برای کاربران سازمانی تعیین کنید و به‌سادگی سیاست‌های کنترل دسترسی (Role-based access control یا RBAC) را اعمال و مدیریت نمایید.

پالیسی (Bucket Policy)

یک Policy مجموعه‌ای از قواعد است که مشخص می‌کند چه اکانتی می‌تواند چه عملیاتی را روی چه منابعی انجام دهد. این سیاست‌ها معمولاً با ساختار JSON یا YAML تعریف می‌شوند و شامل موارد زیر هستند:

  • Effect: اجازه (Allow) یا جلوگیری (Deny)
  • Action: مثل s3:GetObject, s3:PutObject, s3:ListBucket
  • Resource: مثل bucket-name/* یا bucket-name/folder/*

Policy تعیین می‌کند که چه کسانی به چه شکلی به منابع دسترسی داشته باشند.

دسترسی عمومی (Access Point)

با فعال سازی دسترسی عمومی امکان لیست و دانلود آبجکت‌های باکت شما به صورت عمومی (با s3 browser، مرورگرها، SDK و ... . برای اطلاعات بیشتر کلیک کنید) و خارج از پنل فعال میشود.

برای دسترسی به یک باکت:

  1. یک Service Account ایجاد می‌شود.
  2. یک یا چند Policy به آن متصل می‌شود.
  3. Policyها تعیین می‌کنند که این اکانت به کدام باکت و کدام عملیات مجاز است (مثلاً فقط خواندن، یا خواندن و نوشتن).

نسخه نگاری (مدیریت نسخه‌ها یا Versoining)

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