【问题标题】:Django: static image file should be stored in git repository when using AWS cloudfront and S3?Django:使用 AWS cloudfront 和 S3 时,静态图像文件应该存储在 git 存储库中吗?
【发布时间】:2017-05-11 12:44:25
【问题描述】:

我使用AWS cloudfront and S3 开发了我的Django 项目。

我想知道静态图像文件(不是媒体文件)是否应该存储在 git 存储库中。

我认为如果我运行collectstatic --settings="production.settings,所有静态文件似乎都会上传到我的S3

如果是这样,我认为我不需要将所有静态图像文件存储在git存储库中。

我说的对吗?

【问题讨论】:

  • 我无法理解这个问题。部署后,您的 .py 文件现在将位于生产服务器中。这是否意味着您应该从存储库中删除它们?
  • @AntonisChristofides 你在说什么?为什么说.py文件?我只想了解静态图片文件
  • 如果推理“它们在 S3 中,所以我的存储库中不需要它们”对于静态文件是正确的,那么对于 .py 文件也是正确的。静态文件是程序源代码的一部分。如果明天你想在 Digital Ocean 上部署呢?

标签: django git amazon-web-services amazon-s3 django-staticfiles


【解决方案1】:

一般来说是的。您可以将它们从存储库中删除,因为您已将静态文件上传到 S3

但是……

考虑以下场景。意外地,您将使用 clear 选项调用 collectstatic。所有静态文件都将从 S3 中删除。然后您必须再次将静态文件上传到存储库中。你想要吗?

还有另一个原因是保存静态文件很方便。如果您使用的是 S3,那么您可以节省一些金钱和时间,只将更改的文件上传到存储桶中。例如,您可以使用collectfast。如果您要删除文件,那么 collectfast 将无法计算 md5 校验和,并且可能根本无法工作。

【讨论】:

  • "那你要重新上传静态文件到仓库,你要吗?" => 但是,如果我即使在我的生产服务器中运行collectstatic,所有静态图像都会在 S3 中“自动”上传。我无法控制它。
  • @user3595632 我想我没有正确理解你,但如果你要从 git 和生产服务器中删除所有文件,那么在 collectstatic 之后,什么都不会上传到 s3。
  • 在部署之前,我可以在本地机器上运行collectstatic,然后所有静态文件都上传到s3中
  • 是的,我认为这是可能的。但你仍然有控制权。如果您更改任何静态文件,您可以再次上传它们。无论您是从开发机器还是生产机器上进行操作都没有关系
猜你喜欢
  • 2022-01-18
  • 1970-01-01
  • 2018-10-31
  • 2017-05-24
  • 1970-01-01
  • 2020-03-13
  • 2018-10-12
  • 2019-04-13
  • 2020-10-18
相关资源
最近更新 更多