tencent cloud

Cloud Object Storage

最新情報とお知らせ
製品アップデート情報
製品のお知らせ
製品概要
製品概要
機能概要
応用シナリオ
製品の優位性
基本概念
リージョンとアクセスドメイン名
仕様と制限
製品の課金
課金概要
課金方式
課金項目
無料利用枠
記帳例
請求書の確認とダウンロード
お支払い遅れについて
よくある質問
クイックスタート
コンソールクイックスタート
COSBrowserクイックスタート
ユーザーガイド
リクエストの作成
バケット
オブジェクト
データ管理
バッチ処理
グローバルアクセラレーション
監視とアラーム
運用管理センター
データ処理
インテリジェントツールボックス使用ガイド
データワークフロー
アプリ統合
ツールガイド
ツール概要
環境のインストールと設定
COSBrowserツール
COSCLIツール
COSCMDツール
COS Migrationツール
FTP Serverツール
Hadoopツール
COSDistCpツール
HDFS TO COSツール
オンラインツール (Onrain Tsūru)
セルフ診断ツール
実践チュートリアル
概要
アクセス制御と権限管理
パフォーマンスの最適化
AWS S3 SDKを使用したCOSアクセス
データディザスタリカバリバックアップ
ドメイン名管理の実践
画像処理の実践
COSオーディオビデオプレーヤーの実践
データセキュリティ
データ検証
COSコスト最適化ソリューション
サードパーティアプリケーションでのCOSの使用
移行ガイド
サードパーティクラウドストレージのデータをCOSへ移行
データレークストレージ
クラウドネイティブデータレイク
メタデータアクセラレーション
データアクセラレーター GooseFS
データ処理
データ処理概要
画像処理
メディア処理
コンテンツ審査
ファイル処理
ドキュメントプレビュー
トラブルシューティング
RequestId取得の操作ガイド
パブリックネットワーク経由でのCOSへのファイルアップロード速度の遅さ
COSへのアクセス時に403エラーコードが返される
リソースアクセス異常
POST Objectの一般的な異常
セキュリティとコンプライアンス
データ災害復帰
データセキュリティ
クラウドアクセスマネジメント
よくある質問
よくあるご質問
一般的な問題
従量課金に関するご質問
ドメインコンプライアンスに関するご質問
バケット設定に関する質問
ドメイン名とCDNに関するご質問
ファイル操作に関するご質問
権限管理に関するご質問
データ処理に関するご質問
データセキュリティに関するご質問
署名付きURLに関するご質問
SDKクラスに関するご質問
ツール類に関するご質問
APIクラスに関するご質問
Agreements
Service Level Agreement
プライバシーポリシー
データ処理とセキュリティ契約
連絡先
用語集
ドキュメント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パス配下にアップロードされた画像が表示されます。

ヘルプとサポート

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

フィードバック