1
42
为此,我们一直在使用CouchDB,将图像保存为“附件”。但一年之后,数十个GB的CouchDB数据库文件却成了一个头痛的问题。例如,如果将couchdb复制用于非常大的文档大小,那么它仍然存在问题。 所以我们重新编写了我们的软件,用couchdb来存储图像信息,用AmazonS3来存储实际的图像。代码可在 http://github.com/hudora/huImages 您可能需要为您的项目在现场设置与AmazonS3兼容的存储服务。这使您保持了灵活性,现在不需要外部服务就可以选择Amazon。 Walruss 似乎成为最流行和可扩展的S3克隆。 我还敦促您研究LiveJournal的设计及其优秀的开放源代码。 MogileFS 和 Perlbal 供品。 This combination 可能是最著名的图像服务设置。 也 flickr Architecture 虽然他们不像LiveJournal那样向公众提供开源软件,但这可能是一种启发。 |
2
13
“其他问题:CouchDB确实通过base64保存了blob。”
CouchDB有
不
将blob保存为base64,它们存储为直接二进制。检索JSON文档时
couchdb提供与存储内容类型相同的附件,实际上很常见,可以将HTML、CSS和GIF/PNG/JPEG附件直接服务器到浏览器。 附件可以流式传输,在CouchDB 1.1中甚至支持范围头(用于媒体流和/或中断下载的恢复)。 |
3
8
使用 Seaweed-FS (曾被称为weed fs),是Facebook Haystack Paper的一个实现。 海藻是非常灵活和削减到基本。它是为了存储数十亿图像并快速提供服务而创建的。 |
4
3
你考虑过亚马逊网络服务吗?S3是基于Web的文件存储,simpleDB是一个key->属性存储。两者都具有良好的性能和高度的可扩展性。它比维护您自己的服务器和设置(假设您要自己做,而不是雇佣人员)更昂贵,但是您的启动和运行速度更快。 编辑:我收回它——从长远来看,它在高容量下更昂贵,但在低容量下,它超过了购买硬件的初始成本。 S3: http://aws.amazon.com/s3/ (您可以将图像文件存储在这里,出于性能考虑,可能在服务器上有一个图像缓存,或者没有) SimpleDB: http://aws.amazon.com/simpledb/ (元数据可以放在这里:图像ID映射到要存储的任何数据) 编辑2:我甚至不知道这一点,但是有一个新的网络服务叫做AmazonCloudFront( http://aws.amazon.com/cloudfront/ )它用于快速的Web内容交付,并且与S3很好地集成。就你的图片而言,有点像Akamai。您可以使用这个来代替图像缓存。 |
5
3
我们使用Mogilefs。我们是小规模用户,容量不足8TB,文件数量约为5000万。几年前,为了更好地控制文件名和性能,我们从在AmazonS3中存储转向了存储。 它不是最漂亮的软件,但它是非常“现场测试”的,基本上所有用户使用它的方式都和你一样。 |
6
3
也许可以看看Facebook Haystack的描述 Needle in a haystack: efficient storage of billions of photos |
7
2
作为Cloudant的一部分,我不想推销产品……但是BigCoach在我的科学应用程序栈中解决了这个问题(物理——与Cloudant无关,当然与利润无关!)。它将cocuhdb设计的简单性与单服务器couchdb中缺少的自动切分和可扩展性结合起来。我通常使用它来存储较小数量的大文件(多GB)和较大数量的小文件(100MB或更小)。我使用的是S3,但是对于反复访问的小文件,获取成本实际上开始增加。 |
8
1
好吧,如果所有的AWS的东西都不起作用的话,这里有几个想法。
至于(3),如果将二进制数据放入数据库中,同样的数据也会出现。使它成为jpeg的是数据的格式,而不是数据库认为的格式。当您设置
对于磁盘存储,我喜欢CouchDB的简单性,但HDF当然可以工作。这里有一个链接,指向一篇关于从CouchDB提供图像内容的文章: http://japhr.blogspot.com/2009/04/render-couchdb-images-via-sinatra.html 编辑:这里有一个链接,指向一个关于在memcached中缓存图像的有用讨论,与在linux/apache下从磁盘为图像提供服务的讨论。 |
9
1
我一直在尝试在我的python视图服务器中提供给couchdb视图服务器的一些更新功能。 我做的一件非常酷的事情是为图像上传提供一个更新功能,这样我就可以使用pil创建缩略图和其他相关图像,并在它们被推到couchdb时将它们附加到文档中。 如果您需要图像处理,并且希望减少所需的代码量和基础结构,这可能很有用。 |
10
1
我在卡桑德拉的顶上写了一个形象商店。我们有很多,写和随机读/写都很低。对于高读写比,我建议您使用mongodb(gridfs)。 |
11
-1
下面是一个使用php laravel在couchdb中存储blob图像的示例。 在本例中,我将根据用户需求存储三个图像。 在CouchDB中建立连接。
与您可以存储单个图像相同。 |
Jinmin · 如何防止匿名用户阅读couchdb? 6 年前 |
Trevor · 查找pouchdb错误的方向 6 年前 |
jkndrkn · 如何在CouchDB 2.0日志中查看HTTP头? 6 年前 |
Masiar · CouchDB中的部分搜索/查找 6 年前 |
user3740179 · 数据库的随机名称 6 年前 |
Lokesh Jain · 从CouchDB中的数组中删除值 6 年前 |
David J. · 使用多个斜杠将文档保存到CouchDB URL 6 年前 |