Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 存储大型文件的最佳数据库解决方案_Postgresql_Jakarta Ee_Nosql - Fatal编程技术网

Postgresql 存储大型文件的最佳数据库解决方案

Postgresql 存储大型文件的最佳数据库解决方案,postgresql,jakarta-ee,nosql,Postgresql,Jakarta Ee,Nosql,我必须提供一个解决方案,用户可以上传文件,并且这些文件必须与一些元数据一起存储,这可能会变得非常庞大 必须控制对这些文件的访问,所以他们希望我只将它们存储在DBBLOBs中,但我担心PostgreSQL会随着时间的推移而无法正确处理 我的第一个想法是使用一些NoSQLDB解决方案,但我找不到任何可以替代好的RDBMS和优雅地将文件存储在一起的解决方案。然后我想把这些文件保存在HD-where-WebServer不会为它们服务的地方,将它们命名为表ID,然后将它们加载到RAM中,并用适当的内容类型

我必须提供一个解决方案,用户可以上传文件,并且这些文件必须与一些
元数据一起存储,这可能会变得非常庞大

必须控制对这些文件的访问,所以他们希望我只将它们存储在DB
BLOB
s中,但我担心
PostgreSQL
会随着时间的推移而无法正确处理

我的第一个想法是使用一些
NoSQL
DB解决方案,但我找不到任何可以替代好的RDBMS和优雅地将文件存储在一起的解决方案。然后我想把这些文件保存在HD-where-WebServer不会为它们服务的地方,将它们命名为表ID,然后将它们加载到RAM中,并用适当的内容类型打印出来


有谁能为我提供更好的解决方案吗?

我需要存储许多图像(带有一些元数据)并允许对其进行受控访问,以下是我所做的

我将图像文件保存在AmazonS3中。我的本地数据库保存元数据,其中文件的S3位置作为一列。当经过身份验证和授权的用户需要查看文件时,他们会在我的系统中点击一个URL(进行身份验证和授权检查的地方),然后该系统会为图像生成一个预签名的过期URL,并将重定向发送回浏览器。然后,浏览器可以在给定的时间内加载图像(如URL内的签名所指定)


使用此解决方案,我可以在用户级别访问资源,而不必将它们存储为blob或任何类似的东西,这些东西可能会随着时间的推移变得越来越笨拙。我也不使用带宽将文件流式传输到客户端,并为它们获取廉价的冗余存储。显然,此解决方案的适用性将取决于您希望存储的二进制文件的性质以及您对Amazon的信任程度。如果有人从我的系统中看到了一个他们不应该看到的图像,世界并没有结束。YMMV。

很有趣,但我不能将它存储在其他地方,它必须留在我的服务器中。我正在考虑打开它并打印,用一些HTTP头t设置它的名称和内容类型。请定义“真的大”——最大文件大小、平均文件大小和预期文件数(或至少整个数据集的总大小)。比如PDF、ODT和其他文档,从上传到Web服务器的用户那里接收。随着时间的推移,存储文件的数量将不断增加,如果需要删除旧文件,用户将不会高兴。