2012-11-01 2 views
0

Je télécharge un fichier image sur le serveur et le redimensionne pour économiser de l'espace disque dans le magasin de données. Ma méthode de redimensionnement puis de suppression du blob d'origine et de conserver uniquement la petite version du blob supprime toutes les métadonnées. Existe-t-il un moyen de copier les métadonnées Blob à partir du blob d'origine et de l'ajouter à la nouvelle version plus petite?Comment s'assurer que les métadonnées Blob sont conservées lors de la copie de blob dans Python App Engine

def post(self): 
    upload_files = self.get_uploads('file') 
    blob_info = upload_files[0] 
    if blob_info: 
     img = images.Image(blob_key=blob_info) 
     img.im_feeling_lucky() 
     img.resize(width=600, height=800) 
     smallVersion = img.execute_transforms(output_encoding=images.JPEG) 
     file_name = files.blobstore.create(mime_type='image/jpeg') 
     with files.open(file_name, 'a') as f: 
      f.write(smallVersion) 
     files.finalize(file_name) 
     blob_key = files.blobstore.get_blob_key(file_name) 
     blobstore.delete(blob_info.key()) 
     blobCacheURL = images.get_serving_url(blob_key) 

Répondre

1

Lorsque vous créez le blob avec l'API de fichiers, vous pouvez définir le nom du fichier téléchargé:

file_name = files.blobstore.create(mime_type='image/png',_blobinfo_uploaded_filename=file_name_from_url) 

Je suis pas au courant d'autres propriétés blob que vous pouvez définir, lors de l'écriture d'un fichier. Cherchez-vous d'autres propriétés à côté du mime_type?

+0

Merci! Savez-vous comment obtenir le nom de fichier du blob téléchargé? – hakonbogen

+0

De la classe Blobinfo: https://developers.google.com/appengine/docs/python/blobstore/blobinfoclass – voscausa

Questions connexes