開発にFileSystemStorageを使用し、ステージングと本番にS3BotoStorageを使用するDjangoアプリケーションがあります。すべてが正常に機能しています。私が気付いたこれらのシステムの間にはいくつかの小さな違いがあります:
FileSystemStorageは、保存するすべてのファイルにMEDIA_ROOT値を追加します。S3BotoStorageはデフォルトではありません。
FileFieldを使用してモデルインスタンスを削除すると、ファイルがそのディレクトリ内の唯一のファイルである場合、S3BotoStorageはFileFieldのファイルとファイルが存在するディレクトリを削除します。FileSystemStorageは空のディレクトリを削除しません。
これらの違いを回避することはできますが、コードに条件が追加されます。これらの最初のものが最も簡単です-私はS3BotoStorageクラスをで初期化するだけlocation=MEDIA_ROOT
です。同様の方法で2番目のものを処理する方法はありますか?どちらかのストレージクラスのディレクトリ削除動作を構成できますか?FileSystemStorageのdeleteメソッドをオーバーライドする必要がありますか?