Versiyalash yoqilgan boʻlsa, bucket obyektning barcha versiyalarini saqlaydi. Agar fayl xato bilan qayta yozilgan yoki oʻchirilgan boʻlsa, oldingi versiyani tiklash mumkin.
Misollarda UzCloud uchun sozlangan AWS CLI ishlatiladi. my-bucket ni oʻz bucketingiz nomiga almashtiring.
Versiyalashni yoqish
Konsolda: bucket yaratishda Bucket Versioning ni yoqing. Obyektli xotirani boshqarish ga qarang.
AWS CLI orqali:
aws s3api put-bucket-versioning --bucket my-bucket \
--versioning-configuration Status=Enabled
# check the status
aws s3api get-bucket-versioning --bucket my-bucket
Versiyalashni butunlay oʻchirib boʻlmaydi, faqat toʻxtatib turish mumkin (Status=Suspended). Mavjud versiyalar saqlanib qoladi.
Versiyalarni koʻrish
aws s3api list-object-versions --bucket my-bucket --prefix docs/report.pdf
Har bir versiyaning VersionId si bor. Joriy versiyada "IsLatest": true.
Versiyani tiklash
Kerakli versiyani yuklab oling:
aws s3api get-object --bucket my-bucket --key docs/report.pdf \
--version-id <VersionId> report-old.pdf
Yoki uni obyekt ustiga nusxalab, yana joriy qiling:
aws s3api copy-object --bucket my-bucket --key docs/report.pdf \
--copy-source "my-bucket/docs/report.pdf?versionId=<VersionId>"
Oʻchirilgan obyektni tiklash
Versiyalash yoqilgan bucketda obyektni oʻchirish faqat oʻchirish belgisini (delete marker) qoʻshadi. Obyektni tiklash uchun belgini oʻchiring:
aws s3api list-object-versions --bucket my-bucket --prefix docs/report.pdf \
--query 'DeleteMarkers[?IsLatest].VersionId'
aws s3api delete-object --bucket my-bucket --key docs/report.pdf \
--version-id <delete-marker-VersionId>
Eslatma
Barcha versiyalar joy egallaydi va toʻlanadi. Saqlanadigan versiyalar sonini cheklash uchun eski versiyalarni oʻchiradigan hayot sikli qoidasini sozlang.