Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Websites UFRPE
Django Private Storage
Commits
ab6bcd89
Commit
ab6bcd89
authored
Feb 11, 2021
by
Paul J Stevens
Committed by
Diederik van der Boor
May 17, 2021
Browse files
support django-storages > 1.10
parent
5541ff6a
Changes
1
Hide whitespace changes
Inline
Side-by-side
private_storage/storage/s3boto3.py
View file @
ab6bcd89
...
@@ -18,32 +18,43 @@ class PrivateS3BotoStorage(S3Boto3Storage):
...
@@ -18,32 +18,43 @@ class PrivateS3BotoStorage(S3Boto3Storage):
access_key_names
=
[
'AWS_PRIVATE_S3_ACCESS_KEY_ID'
,
'AWS_PRIVATE_ACCESS_KEY_ID'
]
+
S3Boto3Storage
.
access_key_names
access_key_names
=
[
'AWS_PRIVATE_S3_ACCESS_KEY_ID'
,
'AWS_PRIVATE_ACCESS_KEY_ID'
]
+
S3Boto3Storage
.
access_key_names
secret_key_names
=
[
'AWS_PRIVATE_S3_SECRET_ACCESS_KEY'
,
'AWS_PRIVATE_SECRET_ACCESS_KEY'
]
+
S3Boto3Storage
.
secret_key_names
secret_key_names
=
[
'AWS_PRIVATE_S3_SECRET_ACCESS_KEY'
,
'AWS_PRIVATE_SECRET_ACCESS_KEY'
]
+
S3Boto3Storage
.
secret_key_names
# Since this class inherits the default storage, it shares many parameters with the base class.
def
__init__
(
self
,
**
settings
):
# Thus, redefine the setting name that is used to read these values, so almost all settings are not shared.
super
().
__init__
(
**
settings
)
access_key
=
setting
(
'AWS_PRIVATE_S3_ACCESS_KEY_ID'
,
setting
(
'AWS_PRIVATE_ACCESS_KEY_ID'
,
S3Boto3Storage
.
access_key
))
self
.
file_overwrite
=
setting
(
'AWS_PRIVATE_S3_FILE_OVERWRITE'
,
False
)
# false, differ from base class
secret_key
=
setting
(
'AWS_PRIVATE_S3_SECRET_ACCESS_KEY'
,
setting
(
'AWS_PRIVATE_SECRET_ACCESS_KEY'
,
S3Boto3Storage
.
secret_key
))
self
.
object_parameters
=
setting
(
'AWS_PRIVATE_S3_OBJECT_PARAMETERS'
,
{})
file_overwrite
=
setting
(
'AWS_PRIVATE_S3_FILE_OVERWRITE'
,
False
)
# false, differ from base class
self
.
bucket_name
=
setting
(
'AWS_PRIVATE_STORAGE_BUCKET_NAME'
)
object_parameters
=
setting
(
'AWS_PRIVATE_S3_OBJECT_PARAMETERS'
,
{})
self
.
auto_create_bucket
=
setting
(
'AWS_PRIVATE_AUTO_CREATE_BUCKET'
,
False
)
bucket_name
=
setting
(
'AWS_PRIVATE_STORAGE_BUCKET_NAME'
)
self
.
default_acl
=
setting
(
'AWS_PRIVATE_DEFAULT_ACL'
,
'private'
)
# differ from base class
auto_create_bucket
=
setting
(
'AWS_PRIVATE_AUTO_CREATE_BUCKET'
,
False
)
self
.
bucket_acl
=
setting
(
'AWS_PRIVATE_BUCKET_ACL'
,
default_acl
)
default_acl
=
setting
(
'AWS_PRIVATE_DEFAULT_ACL'
,
'private'
)
# differ from base class
self
.
querystring_auth
=
setting
(
'AWS_PRIVATE_QUERYSTRING_AUTH'
,
True
)
bucket_acl
=
setting
(
'AWS_PRIVATE_BUCKET_ACL'
,
default_acl
)
self
.
querystring_expire
=
setting
(
'AWS_PRIVATE_QUERYSTRING_EXPIRE'
,
3600
)
querystring_auth
=
setting
(
'AWS_PRIVATE_QUERYSTRING_AUTH'
,
True
)
self
.
signature_version
=
setting
(
'AWS_PRIVATE_S3_SIGNATURE_VERSION'
)
querystring_expire
=
setting
(
'AWS_PRIVATE_QUERYSTRING_EXPIRE'
,
3600
)
self
.
reduced_redundancy
=
setting
(
'AWS_PRIVATE_REDUCED_REDUNDANCY'
,
False
)
signature_version
=
setting
(
'AWS_PRIVATE_S3_SIGNATURE_VERSION'
)
self
.
location
=
setting
(
'AWS_PRIVATE_LOCATION'
,
''
)
reduced_redundancy
=
setting
(
'AWS_PRIVATE_REDUCED_REDUNDANCY'
,
False
)
self
.
encryption
=
setting
(
'AWS_PRIVATE_S3_ENCRYPTION'
,
False
)
location
=
setting
(
'AWS_PRIVATE_LOCATION'
,
''
)
self
.
custom_domain
=
setting
(
'AWS_PRIVATE_S3_CUSTOM_DOMAIN'
)
encryption
=
setting
(
'AWS_PRIVATE_S3_ENCRYPTION'
,
False
)
self
.
addressing_style
=
setting
(
'AWS_PRIVATE_S3_ADDRESSING_STYLE'
)
custom_domain
=
setting
(
'AWS_PRIVATE_S3_CUSTOM_DOMAIN'
)
self
.
secure_urls
=
setting
(
'AWS_PRIVATE_S3_SECURE_URLS'
,
True
)
addressing_style
=
setting
(
'AWS_PRIVATE_S3_ADDRESSING_STYLE'
)
self
.
file_name_charset
=
setting
(
'AWS_PRIVATE_S3_FILE_NAME_CHARSET'
,
'utf-8'
)
secure_urls
=
setting
(
'AWS_PRIVATE_S3_SECURE_URLS'
,
True
)
self
.
preload_metadata
=
setting
(
'AWS_PRIVATE_PRELOAD_METADATA'
,
False
)
file_name_charset
=
setting
(
'AWS_PRIVATE_S3_FILE_NAME_CHARSET'
,
'utf-8'
)
self
.
endpoint_url
=
setting
(
'AWS_PRIVATE_S3_ENDPOINT_URL'
,
None
)
gzip
=
setting
(
'AWS_PRIVATE_IS_GZIPPED'
,
S3Boto3Storage
.
gzip
)
# fallback to default
self
.
use_ssl
=
setting
(
'AWS_PRIVATE_S3_USE_SSL'
,
True
)
preload_metadata
=
setting
(
'AWS_PRIVATE_PRELOAD_METADATA'
,
False
)
url_protocol
=
setting
(
'AWS_PRIVATE_S3_URL_PROTOCOL'
,
S3Boto3Storage
.
url_protocol
)
# fallback to default
# default settings used to be class attributes on S3Boto3Storage, but
endpoint_url
=
setting
(
'AWS_PRIVATE_S3_ENDPOINT_URL'
,
None
)
# are now part of the initialization or moved to a dictionary
region_name
=
setting
(
'AWS_PRIVATE_S3_REGION_NAME'
,
S3Boto3Storage
.
region_name
)
# fallback to default
self
.
access_key
=
setting
(
'AWS_PRIVATE_S3_ACCESS_KEY_ID'
,
setting
(
'AWS_PRIVATE_ACCESS_KEY_ID'
,
self
.
access_key
))
use_ssl
=
setting
(
'AWS_PRIVATE_S3_USE_SSL'
,
True
)
self
.
secret_key
=
setting
(
'AWS_PRIVATE_S3_SECRET_ACCESS_KEY'
,
setting
(
'AWS_PRIVATE_SECRET_ACCESS_KEY'
,
self
.
secret_key
))
if
hasattr
(
self
,
get_default_settings
):
default_settings
=
self
.
get_default_settings
()
self
.
gzip
=
setting
(
'AWS_PRIVATE_IS_GZIPPED'
,
default_settings
[
"gzip"
])
# fallback to default
self
.
url_protocol
=
setting
(
'AWS_PRIVATE_S3_URL_PROTOCOL'
,
default_settings
[
"url_protocol"
])
# fallback to default
self
.
region_name
=
setting
(
'AWS_PRIVATE_S3_REGION_NAME'
,
default_settings
[
"region_name"
])
# fallback to default
else
:
# backward compatibility
self
.
gzip
=
setting
(
'AWS_PRIVATE_IS_GZIPPED'
,
self
.
gzip
)
self
.
url_protocol
=
setting
(
'AWS_PRIVATE_S3_URL_PROTOCOL'
,
self
.
url_protocol
)
self
.
region_name
=
setting
(
'AWS_PRIVATE_S3_REGION_NAME'
,
self
.
region_name
)
def
url
(
self
,
name
,
*
args
,
**
kwargs
):
def
url
(
self
,
name
,
*
args
,
**
kwargs
):
if
appconfig
.
PRIVATE_STORAGE_S3_REVERSE_PROXY
or
not
self
.
querystring_auth
:
if
appconfig
.
PRIVATE_STORAGE_S3_REVERSE_PROXY
or
not
self
.
querystring_auth
:
...
@@ -62,4 +73,7 @@ class PrivateEncryptedS3BotoStorage(PrivateS3BotoStorage):
...
@@ -62,4 +73,7 @@ class PrivateEncryptedS3BotoStorage(PrivateS3BotoStorage):
through :class:`PrivateS3BotoStorage` by using the proper settings.
through :class:`PrivateS3BotoStorage` by using the proper settings.
"""
"""
encryption
=
True
encryption
=
True
signature_version
=
PrivateS3BotoStorage
.
signature_version
or
's3v4'
def
__init__
(
self
,
**
settings
):
super
().
__init__
(
**
settings
)
self
.
signature_version
=
self
.
signature_version
or
's3v4'
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment