Hi,
I'm trying to catch image data on upload to GAE, in order to store it in
the google cloud.
My model:
db.define_table('fragen',
...
Field('bild','upload'),
...
As far as I understand, web2py generates a blob field automatically on GAE
enviroment, so I didn't implement it in the model.
My cloud-upload controller looks like this:
def cloudupload(form):
from google.appengine.api import app_identity
bucket_name = os.environ.get('BUCKET_NAME',
app_identity.get_default_gcs_bucket_name())
bucket = '/' + bucket_name
filename = bucket + '/'+ str(form.vars.bild)
from gluon import contenttype
mime = contenttype.contenttype(form.vars.bild)
my_default_retry_params = gcs.RetryParams(initial_delay=0.2,
max_delay=5.0,
backoff_factor=2,
max_retry_period=15)
gcs.set_default_retry_params(my_default_retry_params)
write_retry_params = gcs.RetryParams(backoff_factor=1.1)
gcs_file = gcs.open(filename,
'w',
content_type= mime,
retry_params=write_retry_params)
gcs_file.write(form.vars.bild_blob)
gcs_file.close()
return()
I'm calling it from a form a grid. I have tried 'onvalidate= first', but
the fieldstorage doesn't provide me with the filename web2py is storing
finally in the "image" field. So I employed oncreate.
def fragen_cms():
'''
Eingabe für die Fragen
'''
grid = SQLFORM.smartgrid(db.fragen, orderby=db.fragen.contents,
oncreate=cloudupload)
return dict(grid=grid)
Image name is fine, cloud upload works as well, but it seems that there is
no data in file_blob, nor in file_data. Is there a way to retrieve the file
from the form?
Thanks for Your help,
Stephan
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.