Django的Boto包装
django-boto的Python项目详细描述
#django boto
是与[amazon aws]集成的django的实现(http://aws.amazon.com/) 通过[boto](https://github.com/boto/boto)模块提供服务。
#安装
要安装:
easy_install django-boto
或:
pip install django-boto
#配置
##默认文件存储
无法用作默认文件存储系统,因为路径不是 已实现,但仍可以将s3storage对象作为存储传递 文件字段选项
from django.db import models from django_boto.s3.storage import S3Storage
s3 = S3Storage()
- class Car(models.Model):
- … photo = models.ImageField(storage=s3)
##其他设置.py选项
- AWS访问密钥ID
- (默认文件存储使用所需)access key id来自 aws服务的安全凭据设置。使用所需 作为默认存储。
- aws_secret_access_键
- (默认文件存储使用所必需)密钥访问密钥 aws服务的安全凭据设置。使用所需 作为默认存储。
- aws\u acl\u策略
- 保存的对象的默认屏蔽acl。默认为公共读取
- boto_s3_bucket
- 亚马逊s3bucket名称。默认设置为aws-access-key-id
- 主机
- Amazon S3主机名。默认为s3.amazonaws.com
- boto_bucket_位置
- 亚马逊数据中心位置。默认为美国经典地区
- aws_s3_force_http_url
- 默认为false。此设置允许您强制S3返回指向文件的HTTP链接(如果SSL有问题)。
#用法
##手动S3存储使用
如果需要手动使用,可以传递bucket name (如boto_s3_bucket),key(如aws_access_key_id), secret(作为aws_secret_access_key)和位置 (如boto_bucket_location)直接发送到存储构造函数:
from django_boto.s3.storage import S3Storage
- s3 = S3Storage(bucket_name=’another-bucket’, key=’another-key’,
- secret=’another-secret’, location=’EU’)
s3storage是典型的[django存储系统](http://readthedocs.org/docs/django/en/1.4/ref/files/storage.html#the-storage-class),仅路径 未实现且已创建时间和已访问时间返回 值与修改时间相同。
##上载快捷方式
您可以使用快捷方式进行简单上载:
from django_boto.s3 import upload
- upload(filename, name=None, prefix=False, bucket_name=False, key=None,
- secret=None, host=None, expires=0, query_auth=False, force_http=True, policy=None)
其中:
- 文件名:
- 字符串文件或django的文件系统路径文件实例 或者python文件对象实例;
- 名称:
- 字符串上载文件的目标django的名称; 前缀
- 字符串指向s3.amazonaws.com中文件名的路径前缀url。就像 文件名/images/image.jpg带有化身的前缀convert to avatars/image.jpg在Amazon URL中;
- 桶名: Adv.Douk的名称(如果不存在-系统试图创建它)在亚马逊 s3;
- 键
- AWS访问密钥ID替换;
- 秘密:
- aws_secret_access_key替换。
- 主机
- 主机更换。
- 过期:
- int私人链接的有效期应为多长。
- 查询授权:
- bool是否应使用有效签名生成url? 私人文件需要。
- 强制http:
- bool生成的url应该是http吗?
- 政策
- 字符串上传对象的屏蔽acl字符串。
最后九个选项是可选的。如果未设置-它取自设置.py 或者使用默认值。
upload()返回生成的文件下载。