I'm creating a simple server to serve images from a Google Cloud Storage bucket. It will serve images to a mobile app. I'm new to Google Cloud Storage and a python3 Appengine server, I've been running a py2.7 server for years.
I am able to create a cloud storage client and query items, that's working. It seems wasteful to download the images to the Appengine server to in-turn send those to my app. Ideally I can provide my app a url to pull from storage directly. I can do this if I make the bucket publicly accessible but ideally I don't have to do that.
From what I can tell there are a couple of options
1) Use from google.appengine.api import images which has a get_serving_url function which sounds like it's the right thing. But when I try using it I'm getting and error:
AssertionError: No api proxy found for service "image"
2) Also looks like there's an option to use from google.appengine.api import blobstore and use blobstore.create_gs_key('/gs' + filename) but I get a similar error:
AssertionError: No api proxy found for service "blobstore"
3) lastly it looks like there's a way to generate a url that times out using blob.generate_signed_url(). When I use that I get:
So far a lot of dead ends. Reading about the no api proxy most people are pointing to users who are not running within the AppEngine environment .. but I am and I think it may be because these api's were originally built for the py2 version of Appengine and I'm attempting to use them in py3? I suppose I could change my app to a py2 app, but that seems like a dead end long term.
Thanks for any pointers!
Daniel