用于软层云存储的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通过Android Studio列表从HTMLData获取URL   Android studio连接到MySQL工作台,模拟器不断崩溃。显示错误未找到类“java.sql.SQLType”   无IP地址的java通信   java Hibernate:在调用另一个方法并将其转换为字符串后,将列表<String>插入数据库:将整个列表保存在单个单元格中   java使用apache公共io读取大文件   java在模拟器上安装传感器模拟器应用程序   java中的sql非常奇怪的PreparedStatement?   java AspectJ:基于参数值的拦截方法   java JBoss/WildFly连接池和关闭的连接   java有没有办法知道CellStyle已经存在于使用POI的工作簿中(以便重用),或者只复制Celstyle obj而不是引用   java如何将响应解码为列表?   java队列移动到多个点是不准确的   Java注释是否添加了符号或功能?   java无法使用ChainedKafkatTransaction同步Kafka和MQ事务   java如何从不同的可发送电子邮件的html文件构建单个testNG可发送电子邮件的报告   java如何交换两个整数   带有数据播放框架的java预填充表单   我可以使用Java在Windows上创建新的Windows组吗   java My Maven Vaadin项目(使用IntelliJ Idea 13创建)无法看到属于已声明的Maven依赖项的接口类