Is an implementation of django integration with Amazon AWS (http://aws.amazon.com/) services trough boto (https://github.com/boto/boto) module.
To install:
easy_install django-boto
or:
pip install django-boto
Can't be used as default file storage system because of path
not implemented but you still can pass S3Storage
object as storage option
to a FileField
:
from django.db import models from django_boto.s3.storage import S3Storage s3 = S3Storage() class Car(models.Model): ... photo = models.ImageField(storage=s3)
AWS_ACCESS_KEY_ID
- (rquired for default file storage using) Access Key ID from Security Credentials settings on AWS service. Required for using as default storage.
AWS_SECRET_ACCESS_KEY
- (rquired for default file storage using) Secret Access Key from Security Credentials settings on AWS service. Required for using as default storage.
BOTO_S3_BUCKET
- Amazon S3
bucket
name. Default set toAWS_ACCESS_KEY_ID
. BOTO_S3_HOST
- Amazon S3 hostname. Default to
s3.amazonaws.com
. BOTO_BUCKET_LOCATION
- Amazon datacenter location. Default to
US Classic Region
.
If need to using manually - you can direct set bucket_name
(as BOTO_S3_BUCKET
), key
(as AWS_ACCESS_KEY_ID
),
secret
(as AWS_SECRET_ACCESS_KEY
) and location
(as BOTO_BUCKET_LOCATION
)
on storage instatiation:
from boto.s3.storage import S3Storage s3 = S3Storage(bucket='another-bucket', key='another-key', secret='another-secret', location='EU')
S3Storage
- it's tipical Djago storage system, only path
is not implemented and created_time
and accessed_time
return
same value as modified_time
.
For simple uploading you can use shortcut:
from django_boto.s3 import upload upload(filename, name=None, prefix=False, bucket_name=False, key=None, secret=None)
where:
filename
string
filesystem path to file or djangoFile
instance or pythonfile
object instance;name
string
target django name for uploading file;prefix
string
path prefix to filename ins3.amazonaws.com
url. Like filename/images/image.jpg
withavatars
prefix convert toavatars/image.jpg
in amazon url;bucket_name
- name of bucket (if not exists - system try to create it) in amazon S3;
key
AWS_ACCESS_KEY_ID
replacement;secret
AWS_SECRET_ACCESS_KEY
replacement.
It's retun URL for direct file download.
Last four options are optional. If not set - it takes from settings.py or used defaults.