django 在www.example.com上使用GCS进行媒体存储Railway.app

xt0899hw  于 2023-04-22  发布在  Go
关注(0)|答案(1)|浏览(125)

我正在将Django应用部署到Railway.app,并在GCS上托管媒体(我喜欢免费层)。我已经创建了服务帐户并收到了凭据的.json。在我的本地系统上,我在目录中有.json文件,并像这样引用它:

GS_CREDENTIALS = service_account.Credentials.from_service_account_file(".gcs_credentials.json")

没有问题,文件上传很好。我没有通过Github传递凭证文件(出于安全原因),但现在我被卡住了。
有没有办法将这个JSON文件保存为www.example.com中的环境变量Railway.app?
对于我的所有其他变量,我使用django-environ,一切都很好。我只是在网上找不到任何关于以JSON形式将凭据传递到Railway上的部署的信息。
先谢谢你。

iibxawm4

iibxawm41#

Reddit的人可以回答这个问题!
因此,我必须将json凭据保存在我的.env文件中,如下所示(我必须将所有内容放在同一行):

DJANGO_GS_CREDENTIALS={"type": "service_account","project_id": "xyz","private_key_id": "xyz","private_key": "-----BEGIN PRIVATE KEY---.....

然后,在www.example.com中settings.py,我使用以下内容引用它:

gs_json_data = json.loads(env("DJANGO_GS_CREDENTIALS"))
gs_json_data["private_key"] = gs_json_data["private_key"].replace("\\n", "\n")
GS_CREDENTIALS = service_account.Credentials.from_service_account_info(gs_json_data)

相关问题