2013-06-28 2 views
0

J'ai une question à propos du Google Cloud Datastore.Écrire une image sur google cloud datastore

Je crée une application en Java qui écrit et récupère des entités à partir de la banque de données, mais je ne suis pas capable d'écrire des images ou des données binaires à l'intérieur.

Le google docs dit que c'est (il est le seul exemple manquant): https://developers.google.com/datastore/docs/concepts/entities#Embedded_Entities

Mais on ne sait pas comment faire.

Merci à l'avance pour l'aide

Répondre

0

im en utilisant Spring MVC + JPA + datastore pour le faire.

Modèle:

@Entity 
public class Product { 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Key id; 
    private MultipartFile image; 
    private Blob img; 
    //setter and getter 
} 

Controller:

@RequestMapping(value = "/add", method = RequestMethod.POST) 
public String add(ModelMap model, Product form, HttpServletRequest request) { 
    if(ServletFileUpload.isMultipartContent(request)) { 
    try { 
     Blob file = new Blob(form.getImage().getBytes()); 
     form.setImg(file); 
    } catch (IOException e) { // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    } 
    Product inserted = ProductDAO.INSTANCE.save(form); 
    //other logic and return to jsp 
} 

pour dao juste enregistrer comme d'habitude, vous pouvez trouver de nombreux exemples pour cela.

+0

Désolé je reçois le fichier du système de fichiers et avec java je veux le stocker dans la banque de données, j'ai réussi à mettre un StringByte, mais c'est une limitation, car il ne peut gérer qu'un petit nombre d'octets – FrankPak

2

Je pense que cela peut être un bon endroit pour utiliser Cloud Storage pour stocker le fichier image, puis stocker l'URL pour le fichier image dans le magasin de données. Si vous êtes sur App Engine, vous pouvez explorer le Cloud Storage Client Library.

Sinon, consultez le Javadocs for Google Cloud Storage.

Questions connexes