【问题标题】:Write an image to google cloud datastore将图像写入谷歌云数据存储
【发布时间】:2013-06-26 03:21:46
【问题描述】:

我对 Google Cloud Datastore 有疑问。

我用 Java 设置了一个应用程序,它从数据存储中写入和检索实体,但我无法在其中写入图像或二进制数据。

谷歌文档说就是这样(这是唯一缺失的例子): https://developers.google.com/datastore/docs/concepts/entities#Embedded_Entities

但不清楚如何做到这一点。

提前感谢您的帮助

【问题讨论】:

    标签: java google-app-engine google-cloud-datastore


    【解决方案1】:

    我认为这可能是一个使用 Cloud Storage 存储图像文件的好地方,然后将图像文件的 URL 存储在 Datastore 中。

    如果您使用的是 App Engine,可以探索Cloud Storage Client Library。

    如果没有,请查看Javadocs for Google Cloud Storage。

    【讨论】:

      【解决方案2】:

      我使用 Spring MVC + jpa + datastore 来做。

      型号:

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

      控制器:

      @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
      }
      

      对于 dao 只是像往常一样保存,你可以找到很多例子。

      【讨论】:

      • 对不起,我从文件系统中获取文件,我想用 java 将它存储在数据存储中,我成功放置了一个 StringByte,但这是一个很大的限制,因为它只能处理一个字节数小
      猜你喜欢
      • 2019-12-26
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      • 2019-04-16
      • 2020-01-25
      • 1970-01-01
      相关资源
      最近更新 更多