Django:如何从单独的多个服务器提供用户提交的图像和缩略图?
Posted
技术标签:
【中文标题】Django:如何从单独的多个服务器提供用户提交的图像和缩略图?【英文标题】:Django: how to serve user-submitted images & thumbnails from separate, multiple servers? 【发布时间】:2011-08-02 16:57:23 【问题描述】:对于我的 Django 网站,我想:
-
接受用户提交的图片
从这些图像生成缩略图
将原始图像和缩略图放在单独的多个服务器上,这些服务器专门用于提供图像
我需要多个独立的服务器来提供图像/缩略图,以确保我有足够的 IO 性能。
构建这样的分布式图像服务系统的最佳方法是什么?有什么开源软件有用吗?
谢谢。
【问题讨论】:
我在这篇文章的 cmets 中找到了一个想法 - ***.com/questions/3981080/… 是的,这当然不是答案,但将文件临时上传到安装 Django 的文件系统然后发送它们可能是个好主意到它应该在的服务器... 【参考方案1】:这听起来像是分布式任务队列的工作。我个人最喜欢的是 Beanstalkd b/c,它非常轻巧且易于使用。
服务器:https://github.com/kr/beanstalkd 客户端库:https://github.com/PeterScott/beanstalkc Django 助手:https://github.com/jonasvp/django-beanstalkd
它的工作方式是这样的: 1. 文件上传并存储在本地 2. 通过上传视图创建作业并放入豆茎管 3. 豆茎工人正在看管工作,他们抢新工作 4. 工作人员可以创建缩略图并将其分发到您需要的任意数量的服务器上
美妙之处在于,您可以根据需要让尽可能多的工人从试管中喂食。因此,如果你落后了,只需解雇更多的工人。工人可以在同一台机器上,也可以在许多不同的机器上,它们都可以正常工作。
【讨论】:
以上是关于Django:如何从单独的多个服务器提供用户提交的图像和缩略图?的主要内容,如果未能解决你的问题,请参考以下文章
如何在由“站点”框架提供支持的多个 Django 站点中获取唯一用户?