>The new library still seems to be missing the BlobstoreDownloadHandler 
that would allow the end user to be redirected to download the file. This 
basically set a header and the platform would deliver the blob to the 
client.

Yes, the Public Preview 
<https://cloud.google.com/appengine/docs/standard/python3/services/access> of 
the App Engine bundled services currently does not have the handlers 
implementation (for Blobstore, Mail, or Deferred).  Those handlers relied 
on the webapp framework, so we had to update them to allow use with 
idiomatic web frameworks (e.g., Flask, Django, etc.).  We are actually 
getting ready to launch the Blobstore & Mail handlers into the Private 
Preview (deferred is already available), so if you are interested in 
testing, please fill out this registration 
<https://forms.gle/Ui586QqUJXWkSuj28>.  Once we have validated the updated 
design, we will be launching support for the handlers into Public Preview, 
so the more testing/feedback we get in Private Preview, the faster that can 
happen.

On Monday, November 8, 2021 at 4:53:27 PM UTC-8 will....@friesenpress.com 
wrote:

> Hi,
>
> Thanks for the follow up. The articles detail the process fine if the 
> underlying blobs are "on" cloud storage. In my case I'm talking about 
> legacy blobs stored outside of the my visible buckets. They're not 
> represented in cloud storage and the python 3 runtime does not seem to have 
> a way to access them from what would be the remaining blobkey references. 
> From my understanding my legacy blobs would not have a corresponding 
> "gs_object_name" that would facilitate me accessing them. That is also very 
> much moot on the new runtime since it doesn't provide the BlobInfo api 
> where I would be able to access the gs_object_name property.
>
> I have a feeling the new "appengine-python-standard" library will provide 
> a partial answer as it looks like it will expose some of the old Blobstore 
> APIs that I would need to continue to access legacy blobs that are not 
> listed in an assessable bucket. 
>
> The new library still seems to be missing the BlobstoreDownloadHandler 
> that would allow the end user to be redirected to download the file. This 
> basically set a header and the platform would deliver the blob to the 
> client.
> On Monday, November 8, 2021 at 1:55:41 PM UTC-8 amit...@google.com wrote:
>
>> Hi,
>>
>> I believe you are referring to this 
>> <https://cloud.google.com/appengine/docs/standard/python/blobstore#Serving_a_blob>
>>  
>> for python 2. While taking a look into this , I have found two stack 
>> overflow posts recommending to use Cloud Storage here 
>> <https://stackoverflow.com/questions/42002013/replacing-blobstore-upload-handler-with-gcs>
>>  
>> and here 
>> <https://stackoverflow.com/questions/58054966/how-do-i-use-google-app-engine-python-3-blobstore?answertab=votes#tab-top>
>>  while 
>> using python 3. You can check if any of those fits into your use case.
>> On Monday, November 8, 2021 at 12:38:40 PM UTC-5 
>> will....@friesenpress.com wrote:
>>
>>> I'm slowly moving my way towards a migration path to the new Python 3 
>>> runtime. 2022 is the year. I've been a AppEngine customer since 2009 - so 
>>> I've already seen my share of smaller migrations as the oldest of the 
>>> services died off. 
>>>
>>> I currently have a question about Blobstore. As I'm planning to decouple 
>>> services in preparation for the first of many migrations I'm wondering 
>>> about all my old blobs. All my new blobstore files, as of summer of last 
>>> year, are in the default cloud storage bucket and I'm keeping track of the 
>>> "gs_object_name" 
>>> so that they'll continue to be easy to work with as I migrate which is nice.
>>>
>>> The real question is after I move my apps to the Python3 runtime how 
>>> will I access my legacy blobs? I see that cloud NDB "supports" blobkeys and 
>>> I currently I'd use "blobstore_handlers.BlobstoreDownloadHandler" and 
>>> "send_blob" to allow my users to download their files. I literally have a 
>>> decade of stored blobkeys that I would like to be able to service after I 
>>> move to the new runtime. I see that "send_bob" puts the blobkey in a header 
>>> which I assume is picked up by the platform to deliver the file to the end 
>>> user. Please point me in the right direction if you can!
>>>
>>> On Thursday, November 4, 2021 at 7:47:52 AM UTC-7 Wesley C (Google) 
>>> wrote:
>>>
>>>> App Engine and Google Cloud serverless users:
>>>>
>>>> The App Engine <http://cloud.google.com/appengine> team at Google Cloud 
>>>> <http://cloud.google.com> had a flurry of announcements and product 
>>>> updates over the past few months. In case you missed them, we've 
>>>> summarized 
>>>> them here with relevant links.
>>>>
>>>>
>>>>    - 
>>>>    
>>>>    New features to better secure your Google App Engine apps 
>>>>    
>>>> <https://cloud.google.com/blog/products/serverless/app-engine-egress-controls-and-user-managed-service-accounts>
>>>>  
>>>>    (Aug 2021) —  Introducing a pair of networking and security 
>>>>    features:
>>>>    - 
>>>>       
>>>>       Egress Controls for Serverless VPC Access 
>>>>       
>>>> <https://cloud.google.com/appengine/docs/standard/python3/connecting-vpc#manage>
>>>>  
>>>>       — consistent app (static) outbound IP address
>>>>       - 
>>>>       
>>>>       User-managed service accounts 
>>>>       
>>>> <https://cloud.google.com/appengine/docs/standard/python3/user-managed-service-accounts>
>>>>  
>>>>       — custom service accounts to restrict apps to only the permissions 
>>>>       necessary, following the best practice of "least privileges"
>>>>       - 
>>>>    
>>>>    Exploring serverless with a nebulous app 
>>>>    
>>>> <https://developers.googleblog.com/2021/09/exploring-serverless-with-nebulous-app.html?utm_source=blog&utm_medium=partner&utm_campaign=CDR_wes_aap-serverless_nebserv_sms_201028>
>>>>  
>>>>    (Sep 2021) — Deploy/shift the same app to App Engine, Cloud 
>>>>    Functions, or Cloud Run without any code changes, and show how to 
>>>> access 
>>>>    Cloud APIs from serverless
>>>>    - 
>>>>    
>>>>    Extending support for App Engine bundled services 
>>>>    
>>>> <https://cloud.google.com/blog/products/serverless/support-for-app-engine-services-in-second-generation-runtimes>
>>>>  
>>>>    (Sep 2021) — Legacy App Engine APIs/bundled services, e.g., Memcache 
>>>>    <https://cloud.google.com/appengine/docs/standard/java/memcache>, 
>>>>    Datastore 
>>>>    <https://cloud.google.com/appengine/docs/standard/java/datastore>, 
>>>>    etc., were left out of the next-generation service (to fight against 
>>>>    "vendor lock-in" not because they were deprecated). Many matured into 
>>>>    standalone products, e.g., Cloud Memorystore 
>>>>    <http://cloud.google.com/memorystore>, Cloud Datastore 
>>>>    <http://cloud.google.com/datastore>, etc., respectively anyway. To 
>>>>    help with updating language versions (e.g., Python 2 to 3, Java 8 to 
>>>> 11, 
>>>>    etc.), we've added many of these bundled services "back" to the latest 
>>>> App 
>>>>    Engine runtimes.
>>>>    - 
>>>>    
>>>>    Modernizing your serverless applications 
>>>>    
>>>> <https://cloud.google.com/blog/topics/developers-practitioners/modernizing-your-serverless-applications?utm_source=blog&utm_medium=partner&utm_campaign=CDR_wes_aap-serverless_modernizesvls_sms_201003>
>>>>  
>>>>    (Sep 2021) — Introducing codelabs (hands-on tutorials) and new 
>>>>    video series <http://bit.ly/3xk2Swi> to help customers migrate to 
>>>>    standalone services to modernize & make their apps more portable 
>>>>    (second-generation App Engine, Cloud Functions, Cloud Run; Kubernetes 
>>>>    Engine (GKE), Compute Engine VMs; other cloud, multi-cloud, hybrid 
>>>> cloud, 
>>>>    on-prem, etc.):
>>>>    - 
>>>>       
>>>>       App Engine webapp2 to Flask 
>>>>       
>>>> <https://developers.googleblog.com/2021/07/migrating-from-app-engine-webapp2-to-flask.html?utm_source=blog&utm_medium=partner&utm_campaign=CDR_wes_aap-serverless_mgrwa2flsk_201008>
>>>>       - 
>>>>       
>>>>       App Engine taskqueue to Cloud Tasks 
>>>>       
>>>> <https://developers.googleblog.com/2021/10/migrating-app-engine-push-queues-to.html?utm_source=blog&utm_medium=partner&utm_campaign=CDR_wes_aap-serverless_mgrcloudtasks_sms_201112>
>>>>  
>>>>       (push queues)
>>>>       - 
>>>>       
>>>>       App Engine ndb (Datastore) to Cloud NDB 
>>>>       
>>>> <http://developers.googleblog.com/2021/07/migrating-from-app-engine-ndb-to-cloud-ndb.html?utm_source=blog&utm_medium=partner&utm_campaign=CDR_wes_aap-serverless_mgrcloudndb_201021>
>>>>        
>>>>       - 
>>>>       
>>>>       Cloud NDB to Cloud Datastore 
>>>>       
>>>> <http://developers.googleblog.com/2021/08/cloud-ndb-to-cloud-datastore-migration.html?utm_source=blog&utm_medium=partner&utm_campaign=CDR_wes_aap-serverless_mgrcloudds_201003>
>>>>       - 
>>>>       
>>>>       App Engine to Cloud Run (with Docker 
>>>>       
>>>> <https://developers.googleblog.com/2021/08/containerizing-google-app-engine-apps-for-cloud-run.html?utm_source=blog&utm_medium=partner&utm_campaign=CDR_wes_aap-serverless_mgrcrdckr_sms_201017>
>>>>  
>>>>       or without Docker using Cloud Buildpacks 
>>>>       
>>>> <https://developers.googleblog.com/2021/09/an-easier-way-to-move-your-app-engine-to-cloud-run.html?utm_source=blog&utm_medium=partner&utm_campaign=CDR_wes_aap-serverless_mgrcrbdpk_sms_201031>
>>>>       )
>>>>       - 
>>>>       
>>>>       More are on the way…
>>>>       
>>>>
>>>> While we are working hard to improve your App Engine experience, 
>>>> recognize App Engine is no longer the only serverless option available 
>>>> from 
>>>> Google Cloud:
>>>>
>>>>  
>>>>
>>>>    - 
>>>>    
>>>>    If you don't have an entire app, have single-function utilities or 
>>>>    microservices, Cloud Functions <http://cloud.google.com/functions> 
>>>>    is a great alternative; it also supports event-driven workloads
>>>>    - 
>>>>    
>>>>    For those leveraging containerization as part of their app 
>>>>    modernization or software development workflows or wish to avoid some 
>>>> of 
>>>>    the constraints from App Engine or Cloud Functions, consider Cloud 
>>>>    Run <http://cloud.run>.
>>>>    
>>>>
>>>> Both Cloud Functions and Cloud Run have similar execution profiles, are 
>>>> pay-per-use, deploy quickly, and autoscale as needed, just like what 
>>>> you're 
>>>> used to from App Engine. Providing a more complete serverless product 
>>>> suite 
>>>> that meets all your use cases and workloads is one of the goals of the 
>>>> Google 
>>>> Cloud serverless <http://cloud.google.com/serverless> team.
>>>>
>>>> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>>>> "A computer never does what you want... only what you tell it."
>>>>     wesley chun :: @wescpy <http://twitter.com/wescpy> :: Software 
>>>> Architect & Engineer
>>>>     Developer Advocate at Google 
>>>> <https://cloud.google.com/developers/advocates/wesley-chun/> by day; 
>>>> at night: Core Python <http://amzn.com/dp/0132269937>
>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/e5f852a7-57bd-48d9-83a4-f9cce2e1b0f7n%40googlegroups.com.

Reply via email to