Heroku在git push时删除文件?

5

我有一个媒体文件夹,用于存储在开发过程中上传的所有图像,并将我的django(1.5.1)项目推送到heroku上的开发服务器。在媒体文件夹内,我有

media/
    # cache and images were commited before .gitignored was added
    cache/ # store thumbnails
    images/ # store images
    .gitignore

.gitignore 文件

*
!.gitignore

无论何时我 git push 到 heroku,我的所有测试上传都被 git 清除了。有没有办法解决这个问题?
1个回答

9

这不是Git的问题,而是Heroku的问题。Heroku的文件系统是短暂的,在部署之间会被重置。使用像Amazon S3这样的服务来存储上传的文件。


我不确定这是否有助于解决我的问题。我不希望在Heroku上的新文件被清除。我不关心git媒体文件夹中的内容。 - Derek
@Derek:不是git抹掉了它们——Heroku使用的是短暂文件系统(临时文件在部署之间被删除)。请使用S3等永久文件存储方案。 - mipadi
2
@Derek mipadi是对的。我来解释一下Heroku如何进行部署。他们会创建一个新目录,从git中拉取到该新目录(这将成为您的新版本),然后当准备好面向世界时(所有设置应用程序的工作都已完成),它只会更改工作目录符号链接到您的新发布目录。这是正确的部署方式。但这意味着在旧版本中上传和存储的任何文件都将无法在新版本中使用。使用Amazon S3存储上传的文件,并在数据库中跟踪它们。 - JoshEmory

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接