我正在使用Django gcloud存储库来允许我的Django应用程序在GCS上存储图像。你知道吗
我已经创建了一个bucket,GCS服务帐户,并根据to the guide下载了一个JSON密钥文件。但是,将映像保存到云存储会引发以下错误:
AssertionError at /showroom/create/
Credentials file not found
...
/srv/showroom/views.py in form_valid
images.save() …
▶ Local vars
...
/env/lib/python3.7/site-packages/django_gcloud_storage/__init__.py in __init__
assert os.path.exists(self.credentials_file_path), "Credentials file not found" …
▶ Local vars
(showroom/create是上传表单)。你知道吗
我将JSON凭证文件存储在静态文件夹static/js/torque-xxx-02827c7cc0ad.json
设置.py
GCS_PROJECT = "torque-xxx"
GCS_BUCKET = "torque-xxx.appspot.com"
GCS_CREDENTIALS_FILE_PATH = os.path.join(BASE_DIR, 'static', 'js', 'torque-xxx-02827c7cc0ad.json')
# GCS_CREDENTIALS_FILE_PATH = '/static/js/torque-xxx-02827c7cc0ad.json' ## This was my first try, didn't work
# DEFAULT_FILE_STORAGE = 'google.storage.googleCloud.GoogleCloudStorage'
DEFAULT_FILE_STORAGE = 'django_gcloud_storage.DjangoGCloudStorage'
我对云存储和API非常不熟悉,如果这是一个新手问题,请原谅。:-)
所有Google凭证密钥都需要存储在环境变量中。例如,您应该像这样创建一个
.env
文件。你知道吗.env
GCS_CREDENTIALS=<your credentials key>
然后在Django,你可以这样做
os.getenv('GCS_CREDENTIALS')
开箱即用,
BASE_DIR
是包含manage.py
模块的文件夹。你知道吗检查以确认存在静态文件夹。你知道吗
通常,它可以存储在其他不能公开访问的位置。你知道吗
根据12 factor application methodology,我建议配置一个环境变量并将其内容写入其中。你知道吗
您可以在
env_file
中执行此操作,或者只需导出到shell环境。你知道吗然后从环境变量写入
static
模块中settings
文件夹以外的位置的文件。你知道吗还记得省去
.gcs_credentials_file
或从版本控制中为文件决定的任何名称。你知道吗相关问题 更多 >
编程相关推荐