Based on Google Cloud Storage JSON API.
Written using Google Cloud Python Client library.
$ pip install django-gcs
Update settings.py
DJANGO_GCS = {
'bucket': 'bucket-name',
'http': get_http_credentials
}
DJANGO_GCS = {
'bucket': None,
'project': '',
'credentials': None,
'http': None,
'cache_control': ['no-cache']
}
bucket
name of the bucket on google cloud storage.project
google project name (not required).credentials
oauth2 credentialshttp
httplib2.Http instance or callable that returns httplib2.Http instancecache_control
is a list of strings. By default ['no-cache']
Note: One of credentials
or http
should be provided for authentication.
Set storage globally:
DEFAULT_FILE_STORAGE = 'django_gcs.GoogleCloudStorage'
Or per model:
from django_gcs import GoogleCloudStorage
class FileModel(models.Model):
file = models.ImageField(storage=GoogleCloudStorage(bucket='some-bucket'))
Example how to generate HTTP object to make request.
import pickle
import httplib2
def get_http_credentials():
with open('google/oauth2/credentials/file', 'r') as f:
credentials = pickle.load(f)
http_credentials = credentials.authorize(httplib2.Http())
return http_credentials