用于软层云存储的django存储
django-softlayer的Python项目详细描述
用于软层云存储的django存储
这个包使用django积云(https://pypi.python.org/pypi/django-cumulus)和 软层对象存储python(https://pypi.python.org/pypi/softlayer-object-storage)。
链接到github存储库:https://github.com/Arpaso/django-softlayer
设置
将以下内容添加到项目的settings.py(您的软层凭据):
CUMULUS = { 'USERNAME': 'YourUsername', # your SoftLayer user name 'API_KEY': 'YourAPIKey', # SoftLayer api key 'CONTAINER': 'ContainerName' # SoftLayer container(folder) name 'NETWORK': 'private', # Paid 'private' or free 'public' network is available } CLOUD_FILE_STORAGE = 'django_softlayer.SoftLayerStorage' INSTALLED_APPS = [ ... 'django_softlayer', ... ]
用法
使用此存储器:
导入存储类,并创建自己的存储。py:
from django_softlayer import SoftLayerStorage from django.utils.functional import LazyObject from django.conf import settings class MyStorage(LazyObject): def _setup(self): self._wrapped = get_storage_class(settings.CLOUD_FILE_STORAGE)()
然后您可以在models.py中使用它:
from storage import MyStorage class MyModel(Model): file = models.FileField(storage=MyStorage())
就这些。
要从文件夹将文件上载到存储,请检查命令用法:
./manage.py syncstatic --help
测试
运行测试:
./manage.py test django_softlayer
管理命令
同步
将目录上载到云存储保存目录结构:
python manage.py syncstatic
选项
- –mediaroot-要从中复制文件的源目录,例如“/home/djangoprojects/myproject/media”。默认为settings.media_root。
- –掩码-文件掩码,例如*.ext。默认为:*.mp3
- -v-提供更高的详细度
获取丢失的文件
向控制台打印关于数据库中存在的空文件或不存在文件但不在云文件存储中的信息:
python manage.py get_missing_files
选项
–app_model_字段-包含点分隔的app、model和字段名的字符串。示例:myapp.user.file
注意:此选项默认为cmd_missing_files_settings变量settings.py:
CMD_MISSING_FILES_SETTINGS = ( 'app.model.filefield', 'nextapp.nextmodel.nextfile' )
- 当cmd_missing_files_settings变量位于settings.py中时,可以搜索一组app.model.field以搜索空文件。
- 使用–app_model_field选项时,每个命令只能指定一个app.model.field。
由arpaso公司开发团队撰写:http://arpaso.com