我对Google Cloud Datastore有疑问。
我在Java中设置了一个从数据存储区写入和检索实体的应用程序,但是我无法在其中写入图像或二进制数据。
谷歌文档说这是(这是唯一缺少的例子): https://developers.google.com/datastore/docs/concepts/entities#Embedded_Entities
但目前尚不清楚如何做到这一点。
提前感谢您的帮助
答案 0 :(得分:2)
我认为这可能是使用云存储来存储图像文件,然后将图像文件的URL存储在数据存储区中的好地方。
如果您使用的是App Engine,则可以浏览Cloud Storage Client Library。
如果没有,请查看Javadocs for Google Cloud Storage。
答案 1 :(得分:0)
我正在使用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只是像往常一样保存,你可以找到很多例子。