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
Signed URLs for temporary access
📖 Scenario: You work for a company that stores private files in Google Cloud Storage. You want to share a file temporarily with a client without making it public. To do this, you will create a signed URL that allows access to the file for a limited time.
🎯 Goal: Create a signed URL for a Google Cloud Storage object that grants temporary access to the file.
📋 What You'll Learn
Create a variable with the bucket name and object name
Set an expiration time for the signed URL
Generate the signed URL using Google Cloud Storage client
Output the signed URL for sharing
💡 Why This Matters
🌍 Real World
Signed URLs let you share private files securely for a limited time without making them public.
💼 Career
Cloud engineers and developers often use signed URLs to control access to storage resources in real projects.
Progress0 / 4 steps
1
Set up bucket and object names
Create two variables called bucket_name and object_name with the exact values "my-private-bucket" and "documents/report.pdf" respectively.
GCP
Hint
Think of bucket_name as the folder and object_name as the file path inside it.
2
Set the expiration time for the signed URL
Create a variable called expiration_time and set it to 3600 seconds (which is 1 hour).
GCP
Hint
The expiration time controls how long the signed URL will work.
3
Generate the signed URL
Import storage from google.cloud and datetime, timedelta from datetime. Create a storage.Client() instance called client. Use client.bucket(bucket_name) to get the bucket and bucket.blob(object_name) to get the blob. Compute expiration = datetime.utcnow() + timedelta(seconds=expiration_time). Then call blob.generate_signed_url(expiration=expiration) and save the result in a variable called signed_url.
GCP
Hint
Use the Google Cloud Storage client library to create the signed URL.
4
Complete the code to output the signed URL
Add a line that assigns the signed_url variable to a variable called temporary_access_link.
GCP
Hint
This variable will hold the URL you can share with others.
Practice
(1/5)
1. What is the main purpose of a signed URL in Google Cloud Storage?
easy
A. To permanently make a file public to everyone
B. To encrypt a file stored in the bucket
C. To provide temporary, secure access to a file without making it public
D. To delete a file from the bucket automatically
Solution
Step 1: Understand what signed URLs do
Signed URLs allow access to a file for a limited time without changing its public status.
Step 2: Compare options
Only To provide temporary, secure access to a file without making it public describes temporary, secure access without making the file public.
Final Answer:
To provide temporary, secure access to a file without making it public -> Option C
Quick Check:
Signed URL = Temporary secure access [OK]
Hint: Signed URLs = temporary access without public exposure [OK]
Common Mistakes:
Thinking signed URLs make files permanently public
Confusing signed URLs with encryption
Assuming signed URLs delete files
2. Which gcloud command correctly creates a signed URL valid for 1 hour to download a file named photo.jpg from bucket my-bucket?
easy
A. gcloud storage signed-urls create gs://my-bucket/photo.jpg --duration=1h
B. gcloud storage signed-url create gs://my-bucket/photo.jpg --valid-for=1h
C. gcloud storage signed-url generate gs://my-bucket/photo.jpg --duration=60m
D. gcloud storage url-sign create gs://my-bucket/photo.jpg --time=1h
Solution
Step 1: Identify correct command syntax
The correct command uses 'gcloud storage signed-urls create' with '--duration' to specify time.
Step 2: Check options for correct flags and command
gcloud storage signed-urls create gs://my-bucket/photo.jpg --duration=1h matches the correct syntax and flag '--duration=1h'. Others use wrong flags or commands.
Final Answer:
gcloud storage signed-urls create gs://my-bucket/photo.jpg --duration=1h -> Option A
Hint: Use 'signed-urls create' with '--duration' for time [OK]
Common Mistakes:
Using incorrect flags like --valid-for or --time
Using 'generate' instead of 'create'
Mixing command order or bucket syntax
3. What will happen if you try to use a signed URL after its expiration time?
medium
A. The signed URL will return an error indicating access denied
B. The file will be accessible without restrictions
C. The signed URL will automatically renew for another period
D. The file will be deleted from the bucket
Solution
Step 1: Understand signed URL expiration
Signed URLs only allow access during their valid time window.
Step 2: Identify behavior after expiration
After expiration, access is denied and an error is returned.
Final Answer:
The signed URL will return an error indicating access denied -> Option A
Quick Check:
Expired signed URL = Access denied error [OK]
Hint: Expired signed URLs deny access with error [OK]
Common Mistakes:
Assuming URLs auto-renew after expiration
Thinking files become public after expiration
Believing files get deleted automatically
4. You created a signed URL with the command gcloud storage signed-urls create gs://my-bucket/file.txt --duration=30m, but users report they cannot access the file. What is the most likely cause?
medium
A. The bucket name is incorrect or does not exist
B. The file file.txt is missing or misspelled in the bucket
C. The signed URL duration is too long
D. Signed URLs do not work for text files
Solution
Step 1: Check bucket and file existence
If the file name is wrong or missing, access via signed URL fails.
Step 2: Evaluate other options
Bucket name error would cause different error; duration too long is allowed; file type does not restrict signed URLs.
Final Answer:
The file file.txt is missing or misspelled in the bucket -> Option B
Quick Check:
Missing file = Access failure [OK]
Hint: Check file name and existence if signed URL fails [OK]
Common Mistakes:
Assuming duration too long blocks access
Believing signed URLs depend on file type
Ignoring typos in file or bucket names
5. You want to share a file securely with a partner for exactly 2 hours, but only allow them to upload a new version, not download the existing one. Which approach using signed URLs is best?
hard
A. Create a signed URL with DELETE method and 2-hour duration
B. Create a signed URL with GET method and 2-hour duration for downloading
C. Make the file public and send the link
D. Create a signed URL with PUT method and 2-hour duration for uploading
Solution
Step 1: Understand HTTP methods for signed URLs
PUT allows uploading or replacing a file; GET allows downloading; DELETE removes the file.
Step 2: Match requirement to method
To allow upload but not download, use a signed URL with PUT method and set duration to 2 hours.
Final Answer:
Create a signed URL with PUT method and 2-hour duration for uploading -> Option D
Quick Check:
Upload access = PUT method signed URL [OK]
Hint: Use PUT signed URL to allow upload only [OK]