Bird
Raised Fist0
GCPcloud~20 mins

Object versioning in GCP - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Object Versioning Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
How does enabling object versioning affect storage costs?

When you enable object versioning on a Google Cloud Storage bucket, what happens to your storage costs?

ACosts remain the same because only the latest version is billed.
BCosts increase because all versions of objects are stored and billed separately.
CCosts decrease because older versions are automatically deleted to save space.
DCosts increase only if you manually enable billing for versions.
Attempts:
2 left
💡 Hint

Think about how storing multiple copies affects space.

service_behavior
intermediate
2:00remaining
What happens when you delete an object in a versioned bucket?

In a Google Cloud Storage bucket with object versioning enabled, what happens when you delete an object without specifying a version?

AA delete marker is added, hiding the current version but older versions remain accessible.
BAll versions of the object are permanently deleted immediately.
CThe latest version is permanently deleted and older versions are also deleted automatically.
DThe object is moved to a trash folder for 30 days before permanent deletion.
Attempts:
2 left
💡 Hint

Consider how versioning preserves data after deletion.

Configuration
advanced
2:00remaining
Identify the correct gsutil command to enable versioning

Which gsutil command correctly enables object versioning on a bucket named my-bucket?

Agsutil set versioning enabled gs://my-bucket
Bgsutil enable versioning gs://my-bucket
Cgsutil versioning set on gs://my-bucket
Dgsutil bucket versioning enable gs://my-bucket
Attempts:
2 left
💡 Hint

Check the gsutil syntax for versioning commands.

security
advanced
2:00remaining
How does object versioning impact data recovery after accidental overwrite?

With object versioning enabled, what is the best way to recover data after an accidental overwrite of an object?

AOverwrite the object again with a backup copy stored outside the bucket.
BUse the trash folder to restore the deleted object within 7 days.
CContact Google support to retrieve overwritten data.
DRestore the previous version by specifying its generation number to download or copy it.
Attempts:
2 left
💡 Hint

Think about how versioning stores multiple copies.

Architecture
expert
3:00remaining
Designing lifecycle rules with versioning to minimize costs

You have a bucket with object versioning enabled. You want to keep the latest version indefinitely but automatically delete noncurrent versions older than 30 days to reduce costs. Which lifecycle rule configuration achieves this?

A{"rule": [{"action": {"type": "Delete"}, "condition": {"daysSinceNoncurrentTime": 30}}]}
B{"rule": [{"action": {"type": "Delete"}, "condition": {"age": 30, "isLive": true}}]}
C{"rule": [{"action": {"type": "Delete"}, "condition": {"age": 30}}]}
D{"rule": [{"action": {"type": "Delete"}, "condition": {"numNewerVersions": 1}}]}
Attempts:
2 left
💡 Hint

Focus on conditions that target only noncurrent versions.

Practice

(1/5)
1. What is the main purpose of enabling Object Versioning in a Google Cloud Storage bucket?
easy
A. To keep multiple versions of an object to recover from accidental deletion or overwrite
B. To increase the storage capacity of the bucket automatically
C. To encrypt objects with a stronger encryption key
D. To restrict access to objects based on user roles

Solution

  1. Step 1: Understand Object Versioning concept

    Object Versioning allows storing multiple versions of the same object in a bucket.
  2. Step 2: Identify the main benefit

    This helps recover previous versions if an object is deleted or overwritten by mistake.
  3. Final Answer:

    To keep multiple versions of an object to recover from accidental deletion or overwrite -> Option A
  4. Quick Check:

    Object Versioning = Data recovery [OK]
Hint: Versioning means saving old copies to recover later [OK]
Common Mistakes:
  • Confusing versioning with encryption
  • Thinking versioning increases storage automatically
  • Assuming versioning controls access permissions
2. Which of the following commands correctly enables Object Versioning on a Google Cloud Storage bucket named my-bucket?
easy
A. gsutil versioning set on my-bucket
B. gsutil versioning enable gs://my-bucket
C. gsutil versioning set enabled gs://my-bucket
D. gsutil versioning set on gs://my-bucket

Solution

  1. Step 1: Recall gsutil syntax for enabling versioning

    The correct command is gsutil versioning set on gs://bucket-name.
  2. Step 2: Match the command to the bucket name

    gsutil versioning set on gs://my-bucket matches the correct syntax and bucket name format.
  3. Final Answer:

    gsutil versioning set on gs://my-bucket -> Option D
  4. Quick Check:

    Enable versioning = gsutil versioning set on [OK]
Hint: Use 'gsutil versioning set on gs://bucket' to enable [OK]
Common Mistakes:
  • Omitting 'gs://' prefix
  • Using 'enable' instead of 'set on'
  • Adding extra words like 'enabled'
3. Consider a bucket with Object Versioning enabled. If you upload a file named report.txt three times with different content, how many versions of report.txt will exist in the bucket?
medium
A. 3
B. 1
C. 2
D. 4

Solution

  1. Step 1: Understand versioning behavior on multiple uploads

    Each upload creates a new version if versioning is enabled.
  2. Step 2: Count versions after three uploads

    Uploading three times creates three distinct versions of the same object.
  3. Final Answer:

    3 -> Option A
  4. Quick Check:

    Uploads = Versions when versioning on [OK]
Hint: Each upload creates a new version if versioning is enabled [OK]
Common Mistakes:
  • Assuming only one version exists
  • Counting versions as uploads minus one
  • Confusing versions with copies
4. You enabled Object Versioning on a bucket but notice that old versions are not visible when listing objects. What is the most likely cause?
medium
A. Old versions are automatically deleted after 24 hours
B. Versioning was not actually enabled on the bucket
C. You used gsutil ls which only shows live versions by default
D. You need to enable versioning on each object separately

Solution

  1. Step 1: Understand default listing behavior

    By default, gsutil ls shows only the current live versions, not older ones.
  2. Step 2: How to list all versions

    Use gsutil ls -a to see all versions including old ones.
  3. Final Answer:

    You used gsutil ls which only shows live versions by default -> Option C
  4. Quick Check:

    Default list hides old versions [OK]
Hint: Use 'gsutil ls -a' to see all versions [OK]
Common Mistakes:
  • Assuming versioning not enabled without checking
  • Believing old versions auto-delete quickly
  • Thinking versioning applies per object
5. You want to keep only the latest 5 versions of objects in a bucket with Object Versioning enabled to save storage costs. Which approach should you use?
hard
A. Disable Object Versioning and re-enable it every month
B. Set a lifecycle rule to delete noncurrent versions older than a certain age
C. Manually delete old versions using the Cloud Console every week
D. Rename objects to avoid creating new versions

Solution

  1. Step 1: Understand lifecycle management for versioned objects

    Lifecycle rules can automatically delete old versions based on age or count.
  2. Step 2: Choose the best automated approach

    Setting a lifecycle rule to delete noncurrent versions older than a set time saves costs without manual work.
  3. Final Answer:

    Set a lifecycle rule to delete noncurrent versions older than a certain age -> Option B
  4. Quick Check:

    Use lifecycle rules to manage old versions [OK]
Hint: Use lifecycle rules to auto-delete old versions [OK]
Common Mistakes:
  • Relying on manual deletion which is error-prone
  • Disabling versioning loses all version history
  • Renaming objects does not control version count