如何将图像发送给客户端?

时间:2015-07-10 15:22:08

标签: node.js express couchdb

我正在express.js上建立一个网站,我想知道在哪里存储图像。某些“静态”网站信息(如团队页面)将由数据库支持。如果新的团队成员加入,我们会将新数据推送到CouchDB,并在网站上显示新的团队页面。

团队页面将包含个人资料图片,该图片将与其他数据一起存储在CouchDB中。

我应该通过网络服务器发送图像,还是仅将图像发送到图像的位置,让客户端从数据库中获取图像,因为CouchDB本身就是HTTP服务器?

3 个答案:

答案 0 :(得分:1)

我不是Couch DB的专家,但这是我的2美分。通常,为每个图像命中DB,会增加负载。如果该网站将被许多人访问,那将是很多。

理想的方式是使用CDN服务,并让CDN服务器指向您的资源服务器/网络服务器。

答案 1 :(得分:1)

您可以将个人资料照片(和任何其他文件)存储为文档的附件。负载与其他所有Web服务器相同。

文档:

CouchDB管理附件以及文档或视图的ETag。已缓存图片的客户已经为每个相同的请求获得轻量级的304响应。您可以使用我的基于CouchDB的博客lbl.io进行试用。打开您最喜欢的浏览器开发人员栏并在多次刷新期间观察图像请求。

提示1:如果您可以选择内联附件上传(文档中的Base64编码,创建带附件的文档的1个请求)或仅上传附件(原始内容类型中的多部分/相关内容,2请求创建带附件的文档或者当文档已存在时创建附件的请求1 ....然后选择第二个。它更有效地处理CouchDB。

提示2:您可以configure CouchDB to handle gzip compression by the content-type个附件。它减少了很多负荷。

答案 2 :(得分:1)

我只是在/web/images/avatars中转储头像,仅将文件名存储在couchdb中,并使用express.static()

提供文件夹

您当然可以使用couchdb附件

您还可以创建一个亚马逊s3存储桶并在用户对象上保存绝对的https路径