61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Django-file-storage
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								## Django Media Files and Static files Storage
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Steps to create AWS S3 Bucket
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Open aws console and create IAM user for S3 bucket
							 | 
						||
| 
								 | 
							
								* In services select S3
							 | 
						||
| 
								 | 
							
								* Create new S3 buket in S3 console
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Steps to do in django app
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* install boto3 and Django-storages libraries. The commands to install these libraries are
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								pip install boto3
							 | 
						||
| 
								 | 
							
								pip install django-storages
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								* Add storages to Installed Apps in ```settings.py```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* To work with satic assets only you have to add the following to your settings.py
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								AWS_ACCESS_KEY_ID = <your AWS acces key>
							 | 
						||
| 
								 | 
							
								AWS_SECRET_ACCESS_KEY = <your AWS secret key>
							 | 
						||
| 
								 | 
							
								AWS_STORAGE_BUCKET_NAME = <your AWS bucket name>
							 | 
						||
| 
								 | 
							
								AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
							 | 
						||
| 
								 | 
							
								AWS_S3_OBJECT_PARAMETERS = {
							 | 
						||
| 
								 | 
							
								    'CacheControl': 'max-age=86400',
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								AWS_LOCATION = 'static'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								STATICFILES_DIRS = [
							 | 
						||
| 
								 | 
							
								    os.path.join(BASE_DIR, 'mysite/static'),
							 | 
						||
| 
								 | 
							
								]
							 | 
						||
| 
								 | 
							
								STATIC_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
							 | 
						||
| 
								 | 
							
								STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								* To work with both static and media assets you have to add the following to your settings.py
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								AWS_ACCESS_KEY_ID = <your AWS acces key>
							 | 
						||
| 
								 | 
							
								AWS_SECRET_ACCESS_KEY = <your AWS secret key>
							 | 
						||
| 
								 | 
							
								AWS_STORAGE_BUCKET_NAME = <your AWS bucket name>
							 | 
						||
| 
								 | 
							
								AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
							 | 
						||
| 
								 | 
							
								AWS_S3_OBJECT_PARAMETERS = {
							 | 
						||
| 
								 | 
							
								    'CacheControl': 'max-age=86400',
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								AWS_LOCATION = 'static'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								STATICFILES_DIRS = [
							 | 
						||
| 
								 | 
							
								    os.path.join(BASE_DIR, 'mysite/static'),
							 | 
						||
| 
								 | 
							
								]
							 | 
						||
| 
								 | 
							
								STATIC_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
							 | 
						||
| 
								 | 
							
								STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								DEFAULT_FILE_STORAGE = 'mysite.storage_backends.MediaStorage'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 |