gpt4 book ai didi

python - 如何在 Django 中链接到我的 GCS Bucket JSON 凭证文件?

转载 作者:行者123 更新时间:2023-12-01 07:02:28 25 4
gpt4 key购买 nike

我正在使用 Django-gcloud-storage 库来允许我的 Django 应用程序在 GCS 上存储图像。

我已经创建了一个存储桶、GCS 服务帐户并根据 to the guide 下载了 JSON key 文件。但是,将图像保存到云存储会引发此错误:

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

settings.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非常不熟悉,如果这是一个新手问题,请原谅我。 :-)

最佳答案

BASE_DIR 开箱即用,是包含 manage.py 模块的文件夹。

检查并确认那里有一个静态文件夹。

Storing GCS credentials file in static files presents a security risk as it contains your service account key.

通常,它可以存储在其他无法公开访问的位置。

符合12 factor application methodology ,我建议配置一个环境变量并将其内容写入其中。

您可以在 env_file 中执行此操作,或者直接导出到您的 shell 环境。

export GCS_CREDENTIALS=`cat /path-to-gcs-credentials-file`

然后将环境变量写入 settings 模块中 static 文件夹以外位置的文件。

# Load environment variables from env_file if any
# https://pypi.org/project/python-dotenv/

from dotenv import load_dotenv

env_path = os.path.join(BASE_DIR, '.env')
load_dotenv(dotenv_path=env_path)


# This could be any path that the application has read/write permission to
GCS_CREDENTIALS_FILE_PATH = os.path.join(BASE_DIR, '.gcs_credentials_file')
with open(GCS_CREDENTIALS_FILE_PATH, 'w') as f:
f.write(os.getenv('GCS_CREDENTIALS'))

另请记住省略 .gcs_credentials_file 或您在版本控制中为文件决定的任何名称。

关于python - 如何在 Django 中链接到我的 GCS Bucket JSON 凭证文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58577790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com