用于软层云存储的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

选项

  1. –mediaroot-要从中复制文件的源目录,例如“/home/djangoprojects/myproject/media”。默认为settings.media_root
  2. {STR 1 } $-NORePosie跳过,不替换存储中的现有文件。default为false
  3. –掩码-文件掩码,例如*.ext默认为:*.mp3
  4. -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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java需要一种简单的方法来创建用于排序的comparator类   java getReadableDatabase和getWriteableDatabase无法解析   查找列表<Long>中与某个元素对应的所有索引的java方法   安卓将视图添加到ViewFlipper会导致java。StackOverflowerr语言   java根据它所包含的长“curTime”类字段将N的列表拆分为24(小时)   Android N中的Java8流API   自动生成Java策略文件的安全性   垃圾收集鼓励Java中的主要GC(但不是STW GC)   java如何检查UDP服务器上侦听的客户端数量   在前一台主机被Datastax Java驱动程序关闭后,Cassandra尝试重新连接到下一台主机   java如何使用Spring Boot创建部分代理   java是否有一个网站或资源可以完全比较EJB版本   java无需使用第三方库从gradle生成输出   继承由于这个多态性的基本示例中的语法有什么不同吗?(爪哇)   java字符串数组中的空字符串   java为什么CMS中的初始标记阶段是串行的   为什么Lucene有时与InChIKeys不匹配?   安卓通知Java应用程序数据库中的更改   java如何将单个json对象值解析为按钮   java打印堆栈将运行时错误跟踪到文件