我有一个 Django 应用程序,它使用 FileSystemStorage 进行开发,使用 S3BotoStorage 进行暂存和生产。一切正常。我注意到这些系统之间存在一些小的差异:
FileSystemStorage 会将 MEDIA_ROOT 值附加到它保存的任何文件中。S3BotoStorage 默认不会。
如果我使用 FileField 删除模型实例,S3BotoStorage 将删除 FileField 的文件和文件所在的目录,如果该文件是该目录中的唯一文件。FileSystemStorage 不会删除空目录。
我可以解决这些差异,但它们会在我的代码中添加条件。其中第一个是最简单的——我只是用location=MEDIA_ROOT
. 有没有办法以类似的方式处理第二个?我可以配置任一存储类的目录删除行为吗?我应该重写 FileSystemStorage 的删除方法吗?