存储在Heroku上运行的基于Java的REST服务的映像

时间:2014-03-26 22:10:38

标签: java postgresql rest heroku amazon-web-services

我目前正在开发我的第一个基于Java的RESTful服务,该服务应该在Heroku上运行。此服务管理一些具有关联图像的对象。由于Heroku无法存储此图像(除了将它们存储在数据库中),我还是考虑使用外部Content Delivery Network CDN ),如Amazon CloudFront。我实现这一目标的第一次尝试如下:

  1. 在客户端编码图像(base64)。
  2. 将封装在Json中的编码图像发送到服务器端。
  3. 解码服务器端的图像。
  4. 处理图像(缩放,创建缩略图等)。
  5. 使用AWS SDK for Java将图像存储在Amazon的CloudFront中。
  6. 使用postgreSQL database
  7. 中的相关对象存储指向图像的链接

    现在我的问题是,如果这是要走的路,或者是否有更好的方法来做到这一点,如果this GitHub project是一个好的开始点。如果这有助于给出答案 - 图像在桌面和移动设备以及网络应用程序中使用。

1 个答案:

答案 0 :(得分:1)

  

使用AWS SDK for Java将图像存储在亚马逊的CloudFront中。

呃,CloudFront不会存储东西,它会缓存事物。如果你想存储它,你需要将图像放在S3上并每个月付费。

  

在客户端编码图像(base64)

呃,为什么?只需执行PUT或multipart-mime POST,然后将文件作为字节发送。

  

将封装在Json中的编码图像发送到服务器端

同样,没有理由对其进行编码,您可以轻松地在同一个POST中发送元数据+数据而无需编码。

  

使用postgreSQL数据库中的关联对象将图像存储到图像

将图像存储在数据库中是一种反模式。它使数据库更难备份,查询速度更慢等。通常,您希望将图像放在S3中,并将路径存储在数据库中。