Skip to content

Commit 338042a

Browse files
authored
Merge pull request #1166 from andrewsg/images-blobstore
Add get_serving_url sample for images/blobstore
2 parents d45749d + bd12a13 commit 338042a

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

appengine/standard/images/api/blobstore.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,26 @@ def get(self):
4848
# [END thumbnailer]
4949

5050

51-
app = webapp2.WSGIApplication([('/img', Thumbnailer)], debug=True)
51+
class ServingUrlRedirect(webapp2.RequestHandler):
52+
def get(self):
53+
blob_key = self.request.get("blob_key")
54+
55+
if blob_key:
56+
blob_info = blobstore.get(blob_key)
57+
58+
if blob_info:
59+
# [START get_serving_url]
60+
url = images.get_serving_url(
61+
blob_key, size=150, crop=True, secure_url=True)
62+
# [END get_serving_url]
63+
return webapp2.redirect(url)
64+
65+
# Either "blob_key" wasn't provided, or there was no value with that ID
66+
# in the Blobstore.
67+
self.error(404)
68+
69+
70+
app = webapp2.WSGIApplication(
71+
[('/img', Thumbnailer),
72+
('/redirect', ServingUrlRedirect)], debug=True)
5273
# [END all]

appengine/standard/images/api/blobstore_test.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,24 @@ def test_img_missing(app):
4444
def test_no_img_id(app):
4545
# No blob_key, should get error
4646
app.get('/img', status=404)
47+
48+
49+
def test_url_redirect(app):
50+
with mock.patch('blobstore.images') as mock_images:
51+
with mock.patch('blobstore.blobstore') as mock_blobstore:
52+
mock_blobstore.get.return_value = b'123'
53+
mock_images.get_serving_url.return_value = 'http://lh3.ggpht.com/X'
54+
55+
response = app.get('/redirect?blob_key=123')
56+
57+
assert response.status_int == 302
58+
59+
60+
def test_url_redirect_missing(app):
61+
# Bogus blob_key, should get error
62+
app.get('/redirect?blob_key=123', status=404)
63+
64+
65+
def test_url_redirect_no_key(app):
66+
# No blob_key, should get error
67+
app.get('/redirect', status=404)

0 commit comments

Comments
 (0)