storage fix

standalone
Simon Caminada 8 years ago
parent 6c72d36d4f
commit 0a55ac2093

@ -11,7 +11,7 @@ from django.utils.translation import ugettext_lazy as _
from image_cropping import ImageRatioField
from parler.models import TranslatableModel, TranslatedFields
from portal.storage import PrivateS3MediaStorage
#from portal.storage import PrivateS3MediaStorage
from project.utils import CroppableFilerImageField

@ -1,57 +1,58 @@
# -*- coding: utf-8 -*-
import re
from aldryn_django.storage import S3MediaStorage
from django.conf import settings
from boto.s3.connection import (
SubdomainCallingFormat,
OrdinaryCallingFormat,
)
class PrivateS3MediaStorage(S3MediaStorage):
def __init__(self):
bucket_name = settings.AWS_MEDIA_STORAGE_BUCKET_NAME
if '.' in bucket_name:
calling_format = OrdinaryCallingFormat()
else:
calling_format = SubdomainCallingFormat()
# We cannot use a function call or a partial here. Instead, we have to
# create a subclass because django tries to recreate a new object by
# calling the __init__ of the returned object (with no arguments).
super(S3MediaStorage, self).__init__(
access_key=settings.AWS_MEDIA_ACCESS_KEY_ID,
secret_key=settings.AWS_MEDIA_SECRET_ACCESS_KEY,
bucket_name=bucket_name,
location=settings.AWS_MEDIA_BUCKET_PREFIX,
host=settings.AWS_MEDIA_STORAGE_HOST,
custom_domain=settings.AWS_MEDIA_DOMAIN,
calling_format=calling_format,
# Setting an ACL requires us to grant the user the PutObjectAcl
# permission as well, even if it matches the default bucket ACL.
# XXX: Ideally we would thus set it to `None`, but due to how
# easy_thumbnails works internally, that causes thumbnail
# generation to fail...
default_acl='private',
querystring_auth=True,
)
# MEDIA_HEADERS is a list of tuples containing a regular expression
# to match against a path, and a dictionary of HTTP headers to be
# returned with the resource identified by the path when it is
# requested.
# The headers are applied in the order they where declared, and
# processing stops at the first match.
# E.g.:
#
# MEDIA_HEADERS = [
# (r'media/cache/.*', {
# 'Cache-Control': 'max-age={}'.format(3600 * 24 * 365),
# })
# ]
#
media_headers = getattr(settings, 'MEDIA_HEADERS', [])
self.media_headers = [
(re.compile(r), headers) for r, headers in media_headers
]
#import re
#from aldryn_django.storage import S3MediaStorage
#from django.conf import settings
#
#from boto.s3.connection import (
# SubdomainCallingFormat,
# OrdinaryCallingFormat,
#)
#
#
#class PrivateS3MediaStorage(S3MediaStorage):
# def __init__(self):
# bucket_name = settings.AWS_MEDIA_STORAGE_BUCKET_NAME
#
# if '.' in bucket_name:
# calling_format = OrdinaryCallingFormat()
# else:
# calling_format = SubdomainCallingFormat()
#
# # We cannot use a function call or a partial here. Instead, we have to
# # create a subclass because django tries to recreate a new object by
# # calling the __init__ of the returned object (with no arguments).
# super(S3MediaStorage, self).__init__(
# access_key=settings.AWS_MEDIA_ACCESS_KEY_ID,
# secret_key=settings.AWS_MEDIA_SECRET_ACCESS_KEY,
# bucket_name=bucket_name,
# location=settings.AWS_MEDIA_BUCKET_PREFIX,
# host=settings.AWS_MEDIA_STORAGE_HOST,
# custom_domain=settings.AWS_MEDIA_DOMAIN,
# calling_format=calling_format,
# # Setting an ACL requires us to grant the user the PutObjectAcl
# # permission as well, even if it matches the default bucket ACL.
# # XXX: Ideally we would thus set it to `None`, but due to how
# # easy_thumbnails works internally, that causes thumbnail
# # generation to fail...
# default_acl='private',
# querystring_auth=True,
# )
# # MEDIA_HEADERS is a list of tuples containing a regular expression
# # to match against a path, and a dictionary of HTTP headers to be
# # returned with the resource identified by the path when it is
# # requested.
# # The headers are applied in the order they where declared, and
# # processing stops at the first match.
# # E.g.:
# #
# # MEDIA_HEADERS = [
# # (r'media/cache/.*', {
# # 'Cache-Control': 'max-age={}'.format(3600 * 24 * 365),
# # })
# # ]
# #
# media_headers = getattr(settings, 'MEDIA_HEADERS', [])
# self.media_headers = [
# (re.compile(r), headers) for r, headers in media_headers
# ]
#
Loading…
Cancel
Save