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
bucketname. 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:
filenamestringfilesystem path to file or djangoFileinstance or pythonfileobject instance;namestringtarget django name for uploading file;prefixstringpath prefix to filename ins3.amazonaws.comurl. Like filename/images/image.jpgwithavatarsprefix convert toavatars/image.jpgin amazon url;bucket_name- name of bucket (if not exists - system try to create it) in amazon S3;
keyAWS_ACCESS_KEY_IDreplacement;secretAWS_SECRET_ACCESS_KEYreplacement.
It's retun URL for direct file download.
Last four options are optional. If not set - it takes from settings.py or used defaults.