使用django-swiftbrowser实现swift的web访问

来源:互联网 发布:python脚本服务器部署 编辑:程序博客网 时间:2024/06/01 18:46

这个利用django-swiftbrowser来实现,步骤如下:

参考:https://github.com/cschwede/django-swiftbrowser


效果如下


登陆页(这里使用keystone验证)



登陆以后可以浏览container,继续点击就是object,可以下载、上传、生成tempurl

 

 


1、  安装swiftbrowser

pip installdjango-swiftbrowser

2、  配置swift-proxy,确保开启temurl和formpost这两个中间件,验证即可以使用authtoken也可以使用tempauth,配置分别如下:

 

使用authtoken

[pipeline:main]

pipeline = catch_errors healthcheck cache tempurl formpost authtoken keystone   proxy-server

 

使用tempauth

[pipeline:main]

pipeline = catch_errors healthcheck cache tempurl formpost tempauth  proxy-server

 

其他参考配置项

[root@host-10-10-2-41swift]# vim proxy-server.conf-swiftbrwser-tempauth

 

use =egg:swift#keystoneauth

operator_roles= admin, _member_,SwiftOperator

#operator_roles= admin, SwiftOperator

reseller_admin_role=admin

is_admin= false

cache =swift.cache

 

[filter:authtoken]

paste.filter_factory= keystoneclient.middleware.auth_token:filter_factory

admin_tenant_name= service

admin_user= swift

admin_password= swift

auth_host= 10.10.1.8

auth_port= 35357

auth_protocol= http

delay_auth_decision= true

#signing_dir= /tmp/keystone-signing-swift

reseller_prefix=AUTH_

 

[filter:tempurl]

use =egg:swift#tempurl

 

[filter:formpost]

use =egg:swift#formpost

 

[filter:tempauth]

use =egg:swift#tempauth

user_admin_admin= admin .admin .reseller_admin

user_test_tester= testing .admin

user_test2_tester2= testing2 .admin

user_test_tester3= testing3

auth_prefix= /auth/

 

[filter:staticweb]

use =egg:swift#staticweb

 

[filter:account_quotas]

use =egg:swift#account_quotas

 

 

[filter:container_quotas]

use =egg:swift#container_quotas

3、  配置django的setting文件

   

使用authtoken

 

[root@host-10-10-2-41swift]# cat /usr/lib/python2.6/site-packages/swiftbrowser/settings.py

"""Settings for Django project """

import os

 

SESSION_ENGINE= 'django.contrib.sessions.backends.signed_cookies'

 

USE_L10N= True

USE_TZ =True

 

TEMPLATE_LOADERS= (

   'django.template.loaders.filesystem.Loader',

   'django.template.loaders.app_directories.Loader',

)

 

PROJECT_PATH= os.path.realpath(os.path.dirname(__file__))

TEMPLATE_DIRS= ( os.path.join(PROJECT_PATH, 'templates'),)

 

MIDDLEWARE_CLASSES= (

   'django.middleware.common.CommonMiddleware',

    'django.contrib.sessions.middleware.SessionMiddleware',

   'django.contrib.messages.middleware.MessageMiddleware',

   'django.middleware.http.ConditionalGetMiddleware',

   'django.middleware.csrf.CsrfViewMiddleware',

)

 

ROOT_URLCONF= 'swiftbrowser.urls'

 

INSTALLED_APPS= (

    'django.contrib.sessions',

    'django.contrib.staticfiles',

    'swiftbrowser',

)

 

SWIFT_AUTH_URL= 'http://10.10.1.8:35357/v2.0'

SWIFT_AUTH_VERSION= 2 # 2 for keystone

STORAGE_URL= 'http://192.168.1.160:8080/v1/'

BASE_URL= 'http://192.168.1.160:8000'  # defaultif using built-in runserver

SWAUTH_URL= 'http://192.168.1.160:8080/auth/v2'

 

TIME_ZONE= 'Europe/Berlin'

LANGUAGE_CODE= 'de-de'

SECRET_KEY= 'DONT_USE_THIS_IN_PRODUCTION'

STATIC_URL= "http://cdnjs.cloudflare.com/ajax/libs/"

 

ALLOWED_HOSTS= ['127.0.0.1','*']

 

使用tempauth


[root@host-10-10-2-41swift]# cat/usr/lib/python2.6/site-packages/swiftbrowser/settings.py-swiftbrowser-tempauth

"""Settings for Django project """

import os

 

SESSION_ENGINE= 'django.contrib.sessions.backends.signed_cookies'

 

USE_L10N= True

USE_TZ =True

 

TEMPLATE_LOADERS= (

   'django.template.loaders.filesystem.Loader',

    'django.template.loaders.app_directories.Loader',

)

 

PROJECT_PATH= os.path.realpath(os.path.dirname(__file__))

TEMPLATE_DIRS= ( os.path.join(PROJECT_PATH, 'templates'),)

 

MIDDLEWARE_CLASSES= (

   'django.middleware.common.CommonMiddleware',

   'django.contrib.sessions.middleware.SessionMiddleware',

   'django.contrib.messages.middleware.MessageMiddleware',

   'django.middleware.http.ConditionalGetMiddleware',

   'django.middleware.csrf.CsrfViewMiddleware',

)

 

ROOT_URLCONF= 'swiftbrowser.urls'

 

INSTALLED_APPS= (

    'django.contrib.sessions',

    'django.contrib.staticfiles',

    'swiftbrowser',

)

 

SWIFT_AUTH_URL= 'http://127.0.0.1:8080/auth/v1.0'

SWIFT_AUTH_VERSION= 1 # 2 for keystone

STORAGE_URL= 'http://127.0.0.1:8080/v1/'

BASE_URL ='http://127.0.0.1:8000'  # default ifusing built-in runserver

SWAUTH_URL= 'http://127.0.0.1:8080/auth/v2'

 

TIME_ZONE= 'Europe/Berlin'

LANGUAGE_CODE= 'de-de'

SECRET_KEY= 'DONT_USE_THIS_IN_PRODUCTION'

STATIC_URL= "http://cdnjs.cloudflare.com/ajax/libs/"

 

ALLOWED_HOSTS= ['127.0.0.1', 'insert_your_hostname_here']

 

4、  使用django server:

django-admin runserver 0.0.0.0:8000 --settings=swiftbrowser.settings

使用浏览器访问即可

用户名形式: tenant:username  

    密码:   password

 

5、  使用http server,相关文件及内容如下

[root@host-10-10-2-41conf.d]# pwd

/etc/httpd/conf.d

[root@host-10-10-2-41conf.d]# cat wsgi.conf

LoadModulewsgi_module modules/mod_wsgi.so

[root@host-10-10-2-41conf.d]#

[root@host-10-10-2-41conf.d]# cat swiftbrowser.conf

WSGISocketPrefixrun/wsgi

 

WSGIScriptAlias/ /usr/lib/python2.6/site-packages/swiftbrowser/swiftbrowser.wsgi

#Alias/static /opt/horizon/static

 

<Directory/usr/lib/python2.6/site-packages/swiftbrowser/swiftbrowser.wsgi>

  Order allow,deny

  Allow from all

</Directory>

 

以及

[root@host-10-10-2-41swiftbrowser]# pwd

/usr/lib/python2.6/site-packages/swiftbrowser

[root@host-10-10-2-41swiftbrowser]#

[root@host-10-10-2-41swiftbrowser]# cat swiftbrowser.wsgi

importlogging

import os

importsys

importdjango.core.handlers.wsgi

fromdjango.conf import settings

 

# Addthis file path to sys.path in order to import settings

sys.path.insert(0,os.path.join(os.path.dirname(os.path.realpath(__file__)), '.'))

os.environ['DJANGO_SETTINGS_MODULE']= 'settings'

sys.stdout= sys.stderr

 

DEBUG =False

 

application= django.core.handlers.wsgi.WSGIHandler()

6、  重启http 服务,用浏览器访问

有问题,就查看http的日志/var/log/httpd/error_log

0 0
原创粉丝点击