tencent cloud

Cloud Object Storage

ドキュメントCloud Object Storage実践チュートリアルサードパーティアプリケーションでのCOSの使用Django + COSを使用したWebアプリケーションのクラウドストレージソリューションの実装

Django + COSを使用したWebアプリケーションのクラウドストレージソリューションの実装

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-12-24 11:01:25

概要

Djangoは、Pythonで実装されたWebアプリケーションフレームワークです。Webアプリケーションの開発プロセスを大幅に簡素化します。現代のWebアプリケーションのニーズにより良く応えるため、Djangoは、クラウドストレージを含む多くの拡張機能を提供しています。
本記事では主に、COSプラグインを使用してリモート添付ファイル機能を実装し、Djangoアプリケーションのデータを Tencent Cloud Cloud Object Storage (COS) に保存する方法について説明します。

前提条件

COSバケット作成済みであること。ない場合は、バケットの作成 操作ガイドをご参照ください。
サーバー作成済みであること。例:Cloud Virtual Machine (CVM)。関連ガイドは CVM製品ドキュメント をご参照ください。

環境要件

Pythonバージョン:3.8 以降。本記事ではPython 3.12.0バージョンを例に説明します。
COS Pythonバージョン:1.9.31 以降。インストール方法は COS Python SDKクイックスタート をご参照ください。本書ではCOS Python 1.9.31バージョンを例に説明します。
Django バージョン:2.2~3.3(3.3を含まない)。本書では 3.2.18バージョンを例に説明します。

実践手順

COSバケットの作成

1. アクセス権限がパブリック読み取り/プライベート書き込み のバケットを作成します。バケットのリージョンは Djangoを実行するCVMのリージョンと同じにすることを推奨します。作成の詳細は バケットの作成 ドキュメントをご参照ください。
2. バケットリストから先ほど作成したバケットを見つけ、バケット名(例:examplebucket-1250000000)を取得します。

Djangoプロジェクトの作成

1. PyCharm公式サイト にアクセスし、使用している CVM のシステムに対応するPyCharmバージョンを選択します。
2. CVMにインストール後、PyCharmを開き、「NEW project」または「create project」をクリックし、下部のDjangoを選択します。

3. 作成後、ディレクトリ内にあるsetting.pyファイルを見つけて開きます。



4. 以下のコードをコピーして貼り付け、パラメータの説明に従ってCOS サービスの設定を行います。
DEFAULT_FILE_STORAGE = "django_cos_storage.TencentCOSStorage"

TENCENTCOS_STORAGE = {
"BUCKET": "xxx",
"CONFIG": {
"Region": "ap-guangzhou",
"SecretId": "xxxx",
"SecretKey": "xxxx",
}
}
パラメータの説明は以下の通りです。
設定項目
設定値
Bucket
バケット作成時に定義した名称。例:examplebucket-1250000000。
Region
バケット作成時に選択したリージョン。
SecretId
アクセスキー情報。TencentCloud API で作成・取得できます。サブアカウントキーの使用を推奨します。最小権限の原則に従って権限を付与することで、利用リスクを低減してください。詳細は、サブアカウントアクセスキー管理をご参照ください。
SecretKey
アクセスキー情報。TencentCloud API で作成・取得できます。サブアカウントキーの使用を推奨します。最小権限の原則に従って権限を付与することで、利用リスクを低減してください。詳細は、サブアカウントアクセスキー管理をご参照ください。

COSプラグインのダウンロードと設定

1. GithubにアクセスしてCOSプラグインをダウンロードします。ダウンロード後、django_cos_storageディレクトリをdjangoプロジェクトのディレクトリ配下に解凍します。
説明:
プラグイン情報を確認する必要がある場合は、terminalを開き、pip freezeを入力すると、モジュール情報を確認できます。
2. django_cos_storageディレクトリ配下にpyファイル(例:COSStorage.py)を作成します。



以下のコードをコピーして貼り付けます。
from .storage import TencentCOSStorage
from functools import wraps

def decorator(cls):

instance = None
@wraps(cls)
def inner(*args,**kwargs):
nonlocal instance
if not instance:
instance = cls(*args,**kwargs)
return instance
return inner

@decorator
class QFStorage:
def __init__(self):
pass
self.storage =TencentCOSStorage()
self.bucket =self.storage.bucket
self.client =self.storage.client

#オブジェクトのアップロード
def upload_file(self, Key, LocalFilePath, PartSize=1, MAXThread=5, EnableMD5=False):
try:
response =self.client.upload_file(
Bucket=self.bucket,
Key=Key,
LocalFilePath=LocalFilePath,
PartSize=PartSize,
MAXThread=MAXThread,
EnableMD5=EnableMD5
)
return response
except Exception as e:
print('オブジェクトのアップロードに失敗しました,error:',e)
return None
3. app_cosディレクトリ配下のviews.pyを開きます。



以下のコードをコピーして貼り付けます。
from django.shortcuts import render,redirect
from django.http import HttpResponse
from django_cos_storage.COSStorage import QFStorage
from django.conf import settings


#オブジェクトのアップロード

def upload_file_view(request):
response = QFStorage().upload_file(
Key='1.png',
LocalFilePath=settings.BASE_DIR / 'cessu/1.png'
)

if response:
return HttpResponse('ファイルをアップロードしました。')
return HttpResponse('ファイルのアップロードに失敗しました')
注意:
ここで、cessu/1.pngは、アップロードするローカルファイル1.pngがプロジェクトディレクトリ配下の cessuフォルダにあることを示しています。アップロード後、COSバケットのcessuフォルダ内に画像1.pngが確認できます。
4. djangoProject2ディレクトリ内にあるurls.pyを開きます。

コードをコピーして貼り付けます。
from django.contrib import admin
from django.urls import path
from app_cos.views import *

urlpatterns = [
path('admin/', admin.site.urls),

path('upload_file/', upload_file_view),
]
5. terminalでpython manage.py migrateを入力して実行します。
6. terminalでpython manage.py createsuperuserを入力し、プロンプトに従ってアカウントとパスワードを入力します。
注意:
python manage.py createsuperuser実行時に pkg_resourcesが不足している旨のエラーが表示された場合は、インストールコマンドpip install setuptoolsを実行してください。



7. その後、terminalで python .\\manage.py runserverを入力して実行します。

8. ウェブサイトhttp://127.0.0.1:8000/admin/を開き、先ほど設定したアカウントとパスワードを入力してログインを完了します。



注意:
ウェブサイトを開いた際に以下のようなエラーが表示された場合:

PyCharmに戻り、terminalを再度開いて、以下を順に入力します。
python manage.py makemigrations
python manage.py migrate

最後にterminalでpython .\\manage.py runserverを入力して実行し、http://127.0.0.1:8000/admin/を開きます。

Djangoの添付ファイルがCOSに保存されたかの検証

1. http://127.0.0.1:8000/upload_fileにアクセスし、ファイルのアップロード操作を完了します。下図のようなメッセージが表示されれば、アップロード済みです。



2. COSコンソールにログインし、先ほど作成したバケットを選択すると、cessuパス配下にアップロードされた画像が表示されます。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック