نسخهسازی برای باکتها
نسخهسازی یکی از ویژگیهایی است که میتوانید برای باکتها فعال کنید. در صورت فعالسازی این قابلیت چند نسخه از یک آبجکت در همان باکت ذخیره خواهند شد. به این معنی که هر عملیات write روی باکت منجر به تغییر آبجکت نمیشود بلکه نسخهی جدیدی از همان آبجکت را میسازد. در چنین حالتی امکان بازیابی نسخهی قبلی وجود دارد.
فعال بودن این قابلیت از تغییر یا حذف ناخواستهی آبجکتها پیشگیری میکند.
در حالت پیشفرض قابلیت نسخهسازی برای باکتها غیرفعال است. با استفاده از دستور AWS CLI زیر میتوانید آن را فعال کنید.
نکته: توجه داشته باشید که در صورت فعال بودن این قابلیت، همهی نسخههای قدیمی آبجکتها ذخیره میشوند. در نتیجه فضای بیشتری از باکت اشغال میشود. لازم است که حجم آبجکتهای ذخیره شده مدیریت شود. با تنظیم Life Cycle این مورد مدیریت میشود. در بخشهای بعدی در این مورد توضیح داده خواهد شد.
مشاهدهی لیست نسخههای موجود:
دستور GET در باکتی که نسخهسازی برای آن فعال است نسخهی فعلی آبجکت را برمیگرداند:
در صورت نیاز به دریافت نسخهی قدیمیتری از یک آبجکت، لازم است versionId را هم به دستور GET اضافه کنید:
در صورت فعال بودن قابلیت نسخهسازی، پس از حذف یک آبجکت یک نشانگر حذف به جای آن قرار میگیرد و آبجکت واقعا حذف نمیشود. در واقع نشانگر حذف تبدیل به نسخهی فعال آن آبجکت میشود. اگر دستور GET را بدون versionId اجرا کنید مثل آبجکتی که واقعا حذف شده رفتار خواهد کرد و نتیجهای نشان داده نمیشود. اما اگر versionId را به دستور GET اضافه کنید میتوانید به نسخههای آن آبجکت قبل از حذف شدن دسترسی داشته باشید.
در صورت حذف نشانگر حذف، آخرین نسخهی آبجکت برگردانده میشود:
اگر بخواهید یک آبجکت به صورت کامل و بدون امکان دستیابی مجدد حذف شود باید همهی نسخههای آن آبجکت را حذف کنید:
نسخهسازی برای باکت قابلیت suspend یا معلق شدن دارد. اگر نسخهسازی را به حالت معلق درآورید همهی آبجکتها با نسخهی null ذخیره میشوند. پس نسخههای قدیمی آبجکت باقی میمانند و نسخههای جدید null روی یکدیگر overwrite خواهند کرد.