Web应用程序中的图像
我正在开发一个应用程序,在这个应用程序中,用户将上传大量图像,我必须显示这些图像网页 存储和检索图像的最佳方式是什么 1) 数据库 2) 文件系统 3) CDN 4) JCR 还是别的什么 我知道的是 数据库:从数据库中保存和检索图像将导致对数据库的大量查询,并且每次都将blob转换为文件。我认为这会降低网站的性能 文件系统:若我在数据库中保存图像信息,在文件系统中保存图像文件,那个么就会出现同步问题。比如说,如果我备份了数据库,我们就必须备份镜像文件夹。如果有数以百万计的文件,它将消耗大量的服务器资源 我在这里读过 另一种选择是CDN和JCR 请推荐最好的选择Web应用程序中的图像,web,Web,我正在开发一个应用程序,在这个应用程序中,用户将上传大量图像,我必须显示这些图像网页 存储和检索图像的最佳方式是什么 1) 数据库 2) 文件系统 3) CDN 4) JCR 还是别的什么 我知道的是 数据库:从数据库中保存和检索图像将导致对数据库的大量查询,并且每次都将blob转换为文件。我认为这会降低网站的性能 文件系统:若我在数据库中保存图像信息,在文件系统中保存图像文件,那个么就会出现同步问题。比如说,如果我备份了数据库,我们就必须备份镜像文件夹。如果有数以百万计的文件,它将消耗大量的服
问候CDN可能是您的一个好选择
您可以将指向图像的链接以及图像信息存储在数据库中。如果您只计划部署到一台服务器(即负载平衡器后面的多台服务器),或者如果您的所有服务器都可以访问共享文件系统,则使用文件系统才是一个真正的选项。它也可能效率低下,除非在应用程序服务器中缓存频繁访问的文件 您是对的,将实际的二进制数据存储在数据库中可能有些过分,而不是数据库的最佳功能 我建议一个组合:
- CDN(如AWS CloudFront)由公开可访问(但关键是公开只读)存储(如Amazon S3)支持,这意味着无论浏览用户位于何处,都可以高效地为您的图像提供服务,并适当地将其缓存在浏览器中(从而最小化带宽)。S3(或类似版本)意味着您可以使用API从应用服务器上传和管理它们,而不必担心所有服务器(以及外部世界)将如何访问它们
- 我建议在数据库中保存每个图像的元数据。这意味着您可以为每个图像分配一个唯一的密钥(由数据库生成),添加额外的信息(文件格式、大小、标记、作者等),还可以通过CDN将到S3(或类似)的路径存储为图像的公共可访问路径