存储在Heroku上运行的基于Java的REST服务的映像
我目前正在开发我的第一个基于Java的RESTful服务,应该在上面运行。此服务管理一些具有关联图像的对象。由于Heroku无法存储这些图像(除了将它们存储在数据库中),因此我考虑使用类似于CDN的外部(CDN)。我的第一次尝试如下:存储在Heroku上运行的基于Java的REST服务的映像,java,postgresql,rest,heroku,amazon-web-services,Java,Postgresql,Rest,Heroku,Amazon Web Services,我目前正在开发我的第一个基于Java的RESTful服务,应该在上面运行。此服务管理一些具有关联图像的对象。由于Heroku无法存储这些图像(除了将它们存储在数据库中),因此我考虑使用类似于CDN的外部(CDN)。我的第一次尝试如下: 在客户端对图像()进行编码 将封装的编码图像发送到服务器端 在服务器端解码图像 处理图像(缩放、创建缩略图等) 使用for Java将图像存储在Amazon的CloudFront中 将指向具有关联对象的图像的链接存储在中 现在我的问题是,这是否是一条路,或者是否有
在数据库中存储图像是一种反模式。它使数据库更难备份,查询速度更慢,等等。通常,您希望将图像放在S3中,并将路径存储在数据库中。根据图像大小,您也可以将图像直接存储在PostgreSQL的
bytea
字段中或使用pg\u largeobject
。正如我在帖子中提到的,我知道这是可能的,但Dynos并没有那么便宜,浪费他们的计算能力来交付内容不是一个好主意。此外,我必须处理许多图像,在大多数情况下,将图像存储在数据库中也不是一个好主意。因此,我正在寻找一个利用CDN的解决方案。非常明智和合理。感谢您的回答。所以,据我所知,这是一条路要走,我只需要忘记这个en-和解码的东西<代码>在数据库中存储图像是一种反模式。是的,我知道,这是我文章中的一个输入错误。它应该是link
而不是像第六点中的那样。我在上面对克雷格·林格的评论中也说过同样的话-根据您的提示,我能够编写一个简单的上传程序,它接受给定的InputStream(无base64编码),缩放给定的图像并将其放入AmazonS3存储桶中。谢谢