heroku app not showing images how to render images from s3
Opened this issue · 0 comments
i uploaded my site on heroku but its not showing the images. so i want to use s3 to store my media file but i dont know what is the procedure to store media files on s3 and how heroku bring that images on my site. i already having
- AWS_STORAGE_BUCKET_NAME = 'darkmachine'
AWS_ACCESS_KEY_ID = 'AKIAJLAXXXXXX'
AWS_SECRET_ACCESS_KEY = '64Ezs4wRpG7XXXXXXXXXXXXXX'
i set this in my heroku Config Variables
- AWS_ACCESS_KEY_ID = XXXXXXXXXXXXXX
AWS_S3_CUSTOM_DOMAIN = darkmachine.s3.amazonaws.com
AWS_SECRET_ACCESS_KEY = 64Ezs4wRpG7+aZZYD9iDXXXXXXXXXX
AWS_STORAGE_BUCKET_NAME = darkmachine
DATABASE_URL = postgres://ckqpvxmrpfivru:616af4b00b5b671924f22aa53842901a5315c924228ef97b0eefcf0cd0cccbc5@ec2-23-21-217-27.compute-1.amazonaws.com:5432/d8epf1tu2c29sa
DEBUG_COLLECTSTATIC = 0
DISABLE_COLLECTSTATIC = 1
MEDIA_URL = https://darkmachine.s3.amazonaws.com/
S3_BUCKET = darkmachine
Here is my settins.py file
`
from django.conf import settings
if not settings.DEBUG:
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
SECRET_KEY = 'csqwlmc8s55o($rt6ozh7u+ui9zb-et00w$d90j8$^!nvj41_r'
DEBUG = False
ADMINS = (
("rahul", "rahulverma6612@gmail.com"),
)
ALLOWED_HOSTS = ["flyingstore.herokuapp.com"]
# purchasing domain name http://name.com
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'yourgmail@gmail.com'
EMAIL_HOST_PASSWORD = 'yourpassword'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
'''
If using gmail, you will need to
unlock Captcha to enable Django
to send for you:
https://accounts.google.com/displayunlockcaptcha
'''
# Application definition
INSTALLED_APPS = (
# django app
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# third party apps
'crispy_forms',
'django_filters',
'registration',
# my apps
'carts',
'newsletter',
'orders',
'products',
'storages',
'boto',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)
ROOT_URLCONF = 'ecommerce2.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, "templates")],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'ecommerce2.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'flying_store',
'USER': "postgres",
'PASSWORD': 'XXX6612x',
'HOST': '',
'PORT': ''
}
}
import dj_database_url
db_from_env = dj_database_url.config()
DATABASES['default'].update(db_from_env)
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
# STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static_in_pro", "our_static"),
)
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static_in_env", "static_root")
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static_in_env", "media_root")
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
# Crispy FORM TAGs SETTINGS
CRISPY_TEMPLATE_PACK = 'bootstrap3'
# DJANGO REGISTRATION REDUX SETTINGS
ACCOUNT_ACTIVATION_DAYS = 7
REGISTRATION_AUTO_LOGIN = True
SITE_ID = 1
LOGIN_REDIRECT_URL = '/'
BRAINTREE_PUBLIC = "2f8dqqhqs7wz95t8"
BRAINTREE_PRIVATE = "9d2f9ddfaefd81d6af09d537017d86c4"
BRAINTREE_MERCHANT_ID = "68nvwyj4qsz7rnzc"
BRAINTREE_ENVIRONEMNT = "Sandbox"
`
here is my bucket PERMSSION- CORS configration
<?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>https://flyingstore.herokuapp.com/</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>PUT</AllowedMethod> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration>
now tell me what i am messing what i have to add in my code. i tried lot but not getting the solution please help me .