duri0214 / portfolio

0 stars 1 forks source link

既存バッチのoutfolderをstaticからmediaに変更 #70

Closed duri0214 closed 2 months ago

duri0214 commented 3 months ago

概要

media使えば collectstatic しなくてもよさそう 1 2

vietnam_research/management/commands/daily_industry_chart_and_uptrend.py vietnam_research/management/commands/daily_industry_stacked_bar_chart.py

duri0214 commented 2 months ago

djangoのmediaフォルダの役割

Djangoの media フォルダーは、ユーザーがアップロードするメディアファイル(画像、音声、動画など)を保存するための場所です。 ユーザーがWebアプリケーションでファイルをアップロードする際、そのファイルはDjangoサーバー上の media フォルダーに保存されます。そして、そのファイルはURLを通じて直接アクセスすることができます。 これに対して、 static フォルダーはアプリケーションのコードに直接関連する静的なファイル(JavaScript、CSS、画像など)を保存するためのものです。これらのファイルはサーバーの起動時に読み込まれ、アプリケーションが動作するために必要なものです。 ファイルアップロード機能を追加する時、Django の MEDIA_ROOTと MEDIA_URL の設定を適切に設定をする必要があります。

バッチで出力されるファイルはmediaでもOK?

バッチで出力されるファイルを保存する場所としてDjangoの media フォルダーを使用することは可能ですが、その使用は主に開発環境に特化しています。本番環境では、media フォルダへの直接的なアクセスが可能であるため、セキュリティの観点から推奨されません。 一般的に、バッチで出力されるようなファイル(レポート、ログ、一時的なデータファイルなど)は、アプリケーション内から直接アクセスされることは少ないと思われます。このようなファイルはむしろ、システム操作者や管理者がアクセスすることが多いでしょう。 したがって、このようなファイルは media フォルダよりも、より適切な場所に配置すべきです。例えば、アプリケーション外部の特別なディレクトリ、または専用のロギング/モニタリングシステムなどがあります。 用途とセキュリティ要件に応じて最適な場所を選択することが重要です。

じゃあstaticフォルダと(開発用)アプリケーション内のstaticに出力する、今の形 のがいいのか

そうです、static フォルダはアプリケーションが実行するために必要な静的なファイル(つまり、JavaScript、CSS、画像など)を格納する場所として用意されています。それらはアプリケーションの動作に直接関係するファイルです。 バッチで出力されるファイルは、通常、アプリケーションが実行するために必要なものではなく(つまり、アプリケーションの動作に直接関係するわけではない)、アプリケーション外部からアクセスするためのものがほとんどです。それゆえ、staticフォルダ内にそれらを格納することは一般的には推奨されません。 それでもなお、開発環境であれば問題ないかもしれませんが、本番環境では、適切な場所に配置することが重要です。このようなファイルは media フォルダよりも、より適切な場所に配置すべきです。 具体的には、アプリケーション外部の特別なディレクトリ、専用のロギング/モニタリングシステム、クラウドストレージサービスなどを考慮に入れることができます。用途とセキュリティ要件に応じて最適な場所を選択することが重要です。