CodeForge QQ客服 CodeForge 400电话 客服电话 4006316121
首页 » 源代码 » 基于MongoDB和Nginx的Python图像上传服务

基于MongoDB和Nginx的Python图像上传服务

nikolai
发布于2016-05-19 13:51:36
源码作者
浏览次数:
下载次数:0
下载所需积分:1 
源码分类 Tags:
mongodbnginx
源码分类 所属分类:
AllAll

分享有礼! 》

  • 请点击右侧的分享按钮,把本代码分享到各社交媒体。
  • 通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
  • 通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。

代码介绍

``` 1. Introduction

Py-graphic是一个使用python,monggodb和nginx开发的简单的图片上传服务,支持头像缩图生成(缩略图的大

小可以配置),附件图片的上传和压缩(指定上传图片的最大宽度,当超过的时候自动等比例压缩存储)等。上传图片 使用post请求,请求的body中带有uid和avatar或者attach参数即可。 开发这个服务的目的是想简化新网站搭建的过程,将一些模块组件化,之前开发的敏感词过虑模块py-confilter也是 出于这个目的。

  1. Installation

    Py-graphic的安装分为三个部分:Mongodb,Py-graphic,Nginx,模块结构的详细介绍请参见: http://troycheng.blogcn.com/articles/py-graphic%EF%BC%9A%E5%9B%BE%E7%89%87%E5%AD%98%E5%82%A8%E6%9C%8D%E5%8A%A1.html 编译安装mongodb的步骤请参见blog: http://troycheng.blogcn.com/articles/mongodb%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91.html 编译安装nginx的步骤请参见blog: http://troycheng.blogcn.com/articles/nginx%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85%E6%AD%A5%E9%AA%A4.html 此外还有几个依赖需要安装:GraphicMagick和python客户端pgmagick,注意这里编译安装GraphickMagick的时候需要使其支持png和jpeg,另外pgmaick需要GraphicMagick开启--enable-shared选项,mongodb客户端pymongo 编译安装完上述模块之后,下载并解压缩Py-graphic,进入py-graphic/conf/,修改配置文件graphic.cfg,配置 文件实例如下:

    # The config file for graphic service
        # Author: TroyCheng
        # Email: frostmourn716@gmail.com
    
        # This section defined some basic attributes
        [info]
        host = 127.0.0.1
        port = 9020
        poolSize = 3000
    
        # This section define the attributes for mongodb
        [mongodb]
        mongodb_host = 127.0.0.1
        mongodb_port = 9010
        max_pool_size = 100
    
        # define avatar db name and the thumbnail size(px)
        avatar_db = avatar
        avatar_size = 100x100,150x150
    
        # define user upload images db and max width(px)
        attach_db = attach 
        attach_max_width = 400
    
    在info部分指定的是py-graphic服务所绑定的地址和端口号,以及连接池的大小。
    在mongodb部分配置mondb的地址,端口号还有连接池大小,另外还有头像和附件图片所使用的数据库以及图片的

大小。例如avatar-db指定头像存储的db名称,avatar_size指定头像缩略图的大小,支持多个比例,用英文逗号分隔。 attachmaxwidth指定附件图片的最大宽度(单位px),超过这个宽度的将会被等比例压缩到这个大小进行存储。 接下来配置nginx,主要是配置一下反向代理。步骤如下:

    打开nginx/conf/nginx.conf文件,在locaton部分添加如下配置:
            location /image/avatar/ {
                gridfs avatar
                    field=_id
                    type=objectid;
                mongo 127.0.0.1:9010;
            }

            location /image/attach/ {
                gridfs attach 
                    field=_id
                    type=objectid;
                mongo 127.0.0.1:9010
            }
location后面的路径是访问的路径,gridfs指定访问的数据库名称,field指定参数对应grdifs所存data中的哪个字

段,type指明这个字段的类型,mongo则是mongodb的地址。访问时使用的url格式如下: http://nginxhost:port/image/avatar/IMAGEUUID,其中IMAGE_UUID为图片存储之后返回的id。 根据http://www.webguo.com/2011/01/24/pythonhighperformance_webserver.html这篇文章和自己的实 验,使用Nginx作反向代理的时候,处理请求的能力是有所下降的,所以这里nginx只用来访问图片,上传图片的请求 直接交给py-graphic。这样将读写请求分离开了。

3.Usage

上面三个模块都配置完之后,进入py-graphic/bin目录,执行sudo python grapyicd.pystart|stop|restart即可,

example目录下有测试的页面,可以进行图片的上传,使用的时候注意修改一下form表单中action的地址,为py- graphic绑定的地址。上传成功会以json格式返回图片的id,通过这个id进行图片的访问即可。

```

Sponsored links

源码文件列表

温馨提示: 点击源码文件名可预览文件内容哦 ^_^
名称 大小 修改日期
程序员商城

资源评论

(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
  • 1
  • 第1页
  • 共1页

基于MongoDB和Nginx的Python图像上传服务 (26.19 kB)

需要 1 积分
您持有 积分

CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了 了解更多

您的积分不足,优惠套餐快速获取 30 积分

订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。

更多付款方式:网银PayPal

上传代码,免费获取CodeForge积分

您本次下载所消耗的积分将转交上传作者。

同一源码,30天内重复下载,只扣除一次积分。

登录 CodeForge

还没有CodeForge账号? 立即注册
关注微博
联系客服

Switch to the English version?

Yes
CodeForge 英文版
No
CodeForge 中文版

完善个人资料,获价值¥30元积分奖励!

^_^"呃 ...

Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧
好的