我目前正在开发我的第一个基于Java的RESTful服务,该服务应该在Heroku上运行。此服务管理一些具有关联图像的对象。由于Heroku无法存储此图像(除了将它们存储在数据库中),我还是考虑使用外部Content Delivery Network( CDN ),如Amazon CloudFront。我实现这一目标的第一次尝试如下:
现在我的问题是,如果这是要走的路,或者是否有更好的方法来做到这一点,如果this GitHub project是一个好的开始点。如果这有助于给出答案 - 图像在桌面和移动设备以及网络应用程序中使用。
答案 0 :(得分:1)
使用AWS SDK for Java将图像存储在亚马逊的CloudFront中。
呃,CloudFront不会存储东西,它会缓存事物。如果你想存储它,你需要将图像放在S3上并每个月付费。
呃,为什么?只需执行PUT或multipart-mime POST,然后将文件作为字节发送。在客户端编码图像(base64)
将封装在Json中的编码图像发送到服务器端
同样,没有理由对其进行编码,您可以轻松地在同一个POST中发送元数据+数据而无需编码。
使用postgreSQL数据库中的关联对象将图像存储到图像
将图像存储在数据库中是一种反模式。它使数据库更难备份,查询速度更慢等。通常,您希望将图像放在S3中,并将路径存储在数据库中。