shoppingmall(2)S 3メディアサーバの設定
データベース・サーバを一元化する理由:複数のWebサーバ・インスタンス間でデータを共有する必要がある=>共有する必要があるファイル独立したファイル・サーバを使用する
アマゾンs 3を使用してメディアファイル を共有
s 3を設定してメディアファイルと静的ファイルを共有
S 3は、データベースやWebサーバの一例としてではなく、パケットとして用いられる
作成したパケットを倉庫で使用するには、IAMがユーザーの追加と権限の設定を行う必要があります.
AWS上部メニューから「サービス」をクリック-IAMサービスを移動-IAMサービスをクリック-ユーザーを追加-アクセスタイププログラミングアクセスチェックのため-グループを作成-グループ名を設定し、次のようにフィルタを選択します.
で生成されたグループを選択し、「レビュー」画面に特別な内容がない場合は、「ユーザーの作成」ボタンをクリックして を完了します.
ダウンロードアクセスキー 倉庫プロジェクトには、s 3をファイルストレージとして使用できる2つのモジュール がインストールされています.
boto 3はS 3を用いたモジュールである
=> SETTINGS.PYの修正 AWS XXXの変数はboto 3モジュール を必要とする awsのs 3関連API管理ファイル を使用
=>静的ファイルに関する設定を完了し、collectstaticコマンドを実行してローカルの静的ファイルをs 3にアップロードします=>このコマンドを実行して静的ファイルを1つの場所に集約します=>現在s 3にアップロードする方法で静的ファイルを収集します
=>先ほど作成したパケットの内容を表示します.静的ファイルが表示されます.ファイルとフォルダのリストを表示すると、静的ファイル収集が完了していることがわかります.
INSTALLED APPSにストレージを追加し、メディアファイルをs 3にアップロードして管理する
DEFAULT FILE STORAGE変数にカスタムストレージクラスを設定してメディアファイルのファイルストレージを設定する
settings.理由を表す
カスタムストレージクラスパスをプロジェクト名/sasset storageと命名します.ファイルをpyに設定しました.パスにファイルを作成し、MediaStorageクラス を作成してください.メディアファイルの設定が完了し、現在アップロードされている画像ファイルはすべてs 3 にアップロードされます.
アマゾンs 3を使用して
s 3を設定して
(1)S 3設定
S 3は、データベースやWebサーバの一例としてではなく、パケットとして用いられる
作成したパケットを倉庫で使用するには、IAMがユーザーの追加と権限の設定を行う必要があります.
AWS上部メニューから「サービス」をクリック-IAMサービスを移動-IAMサービスをクリック-ユーザーを追加-アクセスタイププログラミングアクセスチェックのため-グループを作成-グループ名を設定し、次のようにフィルタを選択します.
ダウンロード
(2)静的ファイルに関する設定
boto 3はS 3を用いたモジュールである
pip install boto3
django-storagesは各種リポジトリ用のモジュールですpip install django-storages
=>この2つのモジュールがインストールされている場合、django-storagesでboto 3リポジトリを使用し、boto 3でアマゾンS 3をリポジトリに設定してメディアサーバとして使用できます.=> SETTINGS.PYの修正
AWS_ACCESS_KEY_ID = 'IAM 액세스 키 ID'
AWS_SECRET_ACCESS_KEY = '비밀 액세스 키'
AWS_REGION = 'ap-northeast-2'
AWS_STORAGE_BUCKET_NAME = 'django-onlineshop'
AWS_S3_CUSTOM_DOMAIN = '%s.s3.%s.amazonaws.com' % (AWS_STORAGE_BUCKET_NAME, AWS_REGION)
AWS_S3_OBJECT_PARAMETERS={
'CacheControl' : 'max-age=86400',
}
AWS_DEFAULT_ACL = 'public-read'
AWS_LOCATION = 'static'
STATIC_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
=>静的ファイルに関する設定を完了し、collectstaticコマンドを実行してローカルの静的ファイルをs 3にアップロードします=>このコマンドを実行して静的ファイルを1つの場所に集約します=>現在s 3にアップロードする方法で静的ファイルを収集します
python manage.py collectstatic
静的ファイル収集が完了したら、s 3サービスページにアクセスしてアップロードされたファイルを表示します.=>先ほど作成したパケットの内容を表示します.静的ファイルが表示されます.ファイルとフォルダのリストを表示すると、静的ファイル収集が完了していることがわかります.
(3)メディアファイルに関する設定
INSTALLED APPSにストレージを追加し、メディアファイルをs 3にアップロードして管理する
DEFAULT FILE STORAGE変数にカスタムストレージクラスを設定してメディアファイルのファイルストレージを設定する
settings.理由を表す
DEFAULT_FILE_STORAGE = '프로젝트명.asset_storage.MediaStorage'
from storages.backends.s3boto3 import S3Boto3Storage
class MediaStorage(S3Boto3Storage) :
location = 'media'
file_overwrite = False
Reference
この問題について(shoppingmall(2)S 3メディアサーバの設定), 我々は、より多くの情報をここで見つけました https://velog.io/@myway00/django-shoppingmall-2-S3-미디어-서버-설정하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol