Separate in your mind the Blobstore (place were data can be put) and the Blobstore API (which is a programming API builtin to the GAE service layer and can be used with GCS).
The Blobstore is a nonstarter. It is deprectated. It will go away.
The question you want to ask is: What is the best way to put files in GCS?
My team just finished moving our code from using the Blobstore API to directly using the GCS API. The Blobstore API is annoying in that the (java) development server always stores submitted files in a local fake blobstore implementation, not GCS. There’s no simple way to get a direct link to the local file in the blobstore except via the images api, which only works on images of certain types. And the design is somewhat poor - if an error occurs during the blobstore api callback (say, a datastore timeout), you can ‘leak’ blobs.
The docs for the GCS API are so-so (especially the construction of signed upload urls) but at the end of the day the system is much simpler, more robust, and there’s no conditional logic that differs running dev server vs production GAE.
Yes, you can use the image service with GCS. We stopped doing so and now use
imgix.com. There are plusses and minuses to each.
Jeff