我正在尝试使用values.SecretValue()
来设置我的aws bucket名称。要设置Django过去使用的媒体url,请执行以下操作:
AWS_STORAGE_BUCKET_NAME = values.SecretValue()
MEDIA_URL = 'https://s3.amazonaws.com/{}/'.format(AWS_STORAGE_BUCKET_NAME)
现在,即使AWS\u STORAGE\u BUCKET\u NAME正确地从set enironmental varaible中提取值,MEDIA\u URL也是https://s3.amazonaws.com/None/
。你知道吗
可通过以下设置进行复制:
class Production(Common):
AWS_ACCESS_KEY_ID = values.SecretValue()
AWS_SECRET_ACCESS_KEY = values.SecretValue()
AWS_STORAGE_BUCKET_NAME = values.SecretValue()
MEDIA_URL = 'https://s3.amazonaws.com/{}/'.format(AWS_STORAGE_BUCKET_NAME)
print MEDIA_URL, AWS_STORAGE_BUCKET_NAME
# -> https://s3.amazonaws.com/None/ None
用这个运行服务器管理.py地址:
import os
import sys
from django.conf import settings
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config")
os.environ.setdefault("DJANGO_CONFIGURATION", "Production")
os.environ.setdefault("DJANGO_AWS_STORAGE_BUCKET_NAME", "my-bucket")
os.environ.setdefault("DJANGO_SECRET_KEY", "my-secret")
os.environ.setdefault("DJANGO_AWS_ACCESS_KEY_ID", "my-key")
os.environ.setdefault("DJANGO_AWS_SECRET_ACCESS_KEY", "my-secret-key")
print settings.MEDIA_URL, settings.AWS_STORAGE_BUCKET_NAME, os.environ.get('DJANGO_AWS_STORAGE_BUCKET_NAME')
# -> https://s3.amazonaws.com/None/ my-bucket my-bucket
from configurations.management import execute_from_command_line
execute_from_command_line(sys.argv)
临时修复是使用属性在每次调用变量时对其求值:
@property
def MEDIA_URL(self):
return 'https://s3.amazonaws.com/{}/'.format(Production.AWS_STORAGE_BUCKET_NAME)
但是在初始化时设置这个值更有意义。你知道吗
使用Django配置1.0
,和Django 1.9.2
。你知道吗
也许你可以尝试一些懒惰的东西:
相关问题 更多 >
编程相关推荐