Django内でファイル管理をする事も可能ですが、ファイルが多くなる事が想定される場合は外部のストレージと連携して管理した方が良い・・・という事で、AWSのS3 bucketを利用して、画像などその他ファイルを管理できるように連携を行ってみました。 前提情報 ・AWS CLIは設定済み・AWS IAMでユーザー作成済み、アクセスキーも作成済み※AWS CLIとIAMユーザー・アクセスキーの作成は前回の記事を参考にどうぞ・WindowsのOSで、Powershellを利用しています インストールするモジュール django-storagesは、djangoを外部ストレージに連携できるようにする為に必要なモジュールです。boto3は、AWSとの連携に必要なモジュールです。django-environは、Djangoプロジェクトのsettings.pyに機密情報を直接記載せず、envファイルから値を読み込めるようにするモジュールです。※これらモジュールをインストールした後は、アプリケーションデプロイの時に必要なrequirements.txtを更新しておきましょう Djangoのsettings.pyにenvironを組み込む manage.pyがあるフォルダ層に.envファイルを作成。.envファイルの中に、機密情報を記入します。 settings.pyの中には以下のようにenvironの設定と、値の読み込み、importを記述する必要があります。 コマンドラインでAWSのS3 bucketにファイルを連携させる AWSのS3 bucket画面で、ファイルが連携されているか確認 コンソールで確認すると、バケットの中にオブジェクト(ファイル)が無事に連携されている事が確認できました
今回AWS CLIを使って、AWSサービスにローカルPCからログイン&操作できるように環境を整えます。 AWSのIAMでユーザーを作成 ローカルPCからAWSリソースに接続をする場合、アクセスに利用するユーザー情報を作成する必要があります。 ユーザー名を決めて、「AWSマネジメントコンソールへユーザーアクセスを提供する」にチェックを入れます。私の場合はパスワードを自動生成ではなく自分で決めて、サインイン時にパスワードの作り直しは不要と設定しました。 一般的にはユーザーを含めるグループを作成し、そのグループに対してポリシーを設定しますが今回はユーザー単体に対してポリシーをアタッチしてみました。ポリシーは検索でも色々と調べられますので、アカウントに対して許可したい権限を付与してあげてください。 ユーザー作成完了後、アクセスキーを作成すればこの情報を使ってAWS CLIからAWSリソースにアクセスする事ができるようになります。 AWS CLIのインストール こちらのURL(公式サイト)に記載されている通りに、WindowsであればPowerShellにコマンドを打ってインストールを行う。Installing or updating to the latest version[…]