Tobias McNulty avatar Tobias McNulty committed c2a88a8

add support for S3 server-side encryption

Comments (0)

Files changed (1)

storages/backends/s3boto.py

 QUERYSTRING_EXPIRE  = getattr(settings, 'AWS_QUERYSTRING_EXPIRE', 3600)
 REDUCED_REDUNDANCY  = getattr(settings, 'AWS_REDUCED_REDUNDANCY', False)
 LOCATION            = getattr(settings, 'AWS_LOCATION', '')
+ENCRYPTION          = getattr(settings, 'AWS_S3_ENCRYPTION', False)
 CUSTOM_DOMAIN       = getattr(settings, 'AWS_S3_CUSTOM_DOMAIN', None)
 CALLING_FORMAT      = getattr(settings, 'AWS_S3_CALLING_FORMAT', SubdomainCallingFormat())
 SECURE_URLS         = getattr(settings, 'AWS_S3_SECURE_URLS', True)
                        secret_key=None, bucket_acl=BUCKET_ACL, acl=DEFAULT_ACL, headers=HEADERS,
                        gzip=IS_GZIPPED, gzip_content_types=GZIP_CONTENT_TYPES,
                        querystring_auth=QUERYSTRING_AUTH, querystring_expire=QUERYSTRING_EXPIRE,
-                       reduced_redundancy=REDUCED_REDUNDANCY,
+                       reduced_redundancy=REDUCED_REDUNDANCY, encryption=ENCRYPTION,
                        custom_domain=CUSTOM_DOMAIN, secure_urls=SECURE_URLS,
                        location=LOCATION, file_name_charset=FILE_NAME_CHARSET,
                        preload_metadata=PRELOAD_METADATA, calling_format=CALLING_FORMAT):
         self.querystring_auth = querystring_auth
         self.querystring_expire = querystring_expire
         self.reduced_redundancy = reduced_redundancy
+        self.encryption = encryption
         self.custom_domain = custom_domain
         self.secure_urls = secure_urls
         self.location = location or ''
 
         k.set_metadata('Content-Type',content_type)
         k.set_contents_from_file(content, headers=headers, policy=self.acl, 
-                                 reduced_redundancy=self.reduced_redundancy)
+                                 reduced_redundancy=self.reduced_redundancy,
+                                 encrypt_key=self.encryption)
         return cleaned_name
     
     def delete(self, name):
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.