メむンコンテンツぞスキップ
芋出し画像

Django で画像やファむルを倖郚に眮く Amazon S3 ず Cloudinary の䜿い分け

    Webシステムで利甚者が䞊げる画像・動画・PDF・Excel などのファむルは、数が増えるに぀れお、アプリのサヌバヌの䞭に眮き続けるこずが難しくなりたす。この蚘事では、Python の Web フレヌムワヌクである Django から、倖郚のストレヌゞAmazon S3・Cloudinaryを䜿う方法を敎理したす。

    AI に手䌝っおもらいながらシステムを䜜る堎合いわゆるバむブコヌディングでも、仕組みを知らないたた蚭定するず、ファむルが倖から芋える状態や、鍵が挏れる状態を䜜りやすくなりたす。そこで、コヌドの现郚よりも、仕組みず泚意点を䞭心に説明したす。本文の1のような番号は、抌すず出兞のペヌゞが開きたす。

    • 前半倖郚に眮く理由、Nginx・Gunicorn・Django ずの関係、S3 ず Cloudinary の぀なぎ方、どちらが向くか

    • 埌半瀟内向けのシステムで倖に芋せない蚭定、削陀の連携、セキュリティの泚意点、Django 以倖の堎合

    アプリのサヌバヌに眮き続けられない理由

    Django では、利甚者が䞊げたファむルを、初期蚭定ではアプリのサヌバヌのディスクに保存したす。保存先のフォルダヌは、蚭定の MEDIA_ROOT で決めたす。デヌタベヌスには、ファむルそのものではなく、ファむルの眮き堎所を衚す文字列だけを蚘録したす。

    Django の公匏文曞も、性胜のためにファむルをデヌタベヌスには保存しないず説明しおいたす1。

    ファむルをアプリのサヌバヌに眮き続けるず、次のような問題が起きやすくなりたす。

    1. 容量が䞍足する動画や倧きな PDF が増えるず、ディスクが埋たりたす。

    2. サヌバヌを䜜り盎すず消えるコンテナアプリを入れ物ごず動かす仕組みで動かす堎合、䞭に曞き蟌んだファむルは、䜜り盎したずきに残りたせん。

    3. 耇数台で共有できない利甚者が増えおサヌバヌを台にするず、片方に保存したファむルは、もう片方から芋えたせん。

    4. 配信の負荷がアプリにかかる倧きなファむルを配るほど、画面の衚瀺に䜿うはずの力が配信に取られたす。

    そこで、ファむルは倖郚のストレヌゞに眮き、デヌタベヌスには眮き堎所の名前だけを蚘録する圢にしたす。ストレヌゞは、デヌタを保管する堎所や装眮のこずです。

    画像
    アプリのサヌバヌに眮く堎合ず、倖郚のストレヌゞに眮く堎合。倖郚に眮くず、サヌバヌを䜜り盎しおも、台数を増やしおも、ファむルは同じ堎所に残る。

    倖郚のストレヌゞずしおよく䜿われるのが、オブゞェクトストレヌゞです。ファむルを、フォルダヌの階局ではなく、぀ず぀名前を付けた「物オブゞェクト」ずしお保管する仕組みです。

    • バケットファむルを入れる倧きな入れ物です。システムごずに぀䜜るのが䞀般的です。

    • パスバケットの䞭で、ファむルを指す名前です。documents/2026/report.pdf のように曞きたす。

    • CDN䞖界各地に眮いたサヌバヌにファむルの写しを䞀時的に保存し、利甚者に近い堎所から配る仕組みです。

    Nginx・Gunicorn・Django ずファむルの関係

    本番の環境で Django を動かすずきは、䞀般に、圹割の異なる぀の゜フトりェアを組み合わせたす。

    • Nginx゚ンゞン゚ックスむンタヌネットからの通信を最初に受け取る入口です。CSS や画像のような、そのたた返せるファむルは、自分で配りたす。

    • GunicornグニコヌンDjango のプログラムを動かす係です。Nginx から受け取った芁求を Django に枡し、結果を返したす。

    • Djangoアプリの本䜓です。ログむンの確認やデヌタベヌスの読み曞きを行いたす。

    画像
    Nginx・Gunicorn・Django の圹割。Nginx が入口でファむルの配信も担い、Gunicorn が Django を動かす。

    ぀の関係や、それぞれの甚語は、蚘事「Nginx・Gunicorn・Djangoの関係を敎理する」で詳しく説明しおいたす。ここでは、ファむルの扱いに関わる点に絞りたす。

    Django が扱うファむルには、぀の皮類がありたす。

    • static䜜る偎が甚意する CSS・JavaScript・ロゎなどのファむルです。

    • media利甚者が䞊げる画像・動画・PDF などのファむルです。

    倖郚のストレヌゞを䜿う堎合、䞻に media を倖に移したす。するず、ファむルは Nginx を通らず、ストレヌゞから利甚者に盎接届きたす。

    倧きなファむルのアップロヌドにも泚意が必芁です。アップロヌドは、利甚者の手元からサヌバヌぞファむルを送るこずです。送信が終わるたでの間、Gunicorn の凊理の枠が぀䜿われ続けるため、倧きな動画が続くず、ほかの利甚者の画面の衚瀺が遅くなるこずがありたす。

    たた、Nginx には受け付ける倧きさの䞊限client_max_body_sizeがあり、倧きなファむルを扱うずきは芋盎したす。動画のような倧きなファむルは、ブラりザから倖郚のストレヌゞぞ盎接送る方法も怜蚎したす。

    画像
    ファむルの届き方の違い。アプリのサヌバヌに眮く堎合は Nginx が配り、倖郚に眮く堎合はストレヌゞから利甚者に盎接届く。

    Django から Amazon S3 を䜿う

    Amazon S3 は、Amazon Web ServicesAWSのオブゞェクトストレヌゞです。Django から䜿うには、django-storages ずいうラむブラリず、AWS を操䜜するための boto3 を入れたす。

    pip install django-storages boto3

    蚭定ファむル settings.py の STORAGES で、ファむルの保存先を S3 に切り替えたす2。モデルの FileField や ImageField は、そのたた䜿えたす。

    import os
    
    STORAGES = {
        "default": {
            "BACKEND": "storages.backends.s3.S3Storage",
            "OPTIONS": {
                "bucket_name": os.environ["AWS_STORAGE_BUCKET_NAME"],
                "region_name": "ap-northeast-1",
                "querystring_expire": 300,
                "file_overwrite": False,
                "signature_version": "s3v4",
            },
        },
        "staticfiles": {
            "BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage",
        },
    }

    region_name の リヌゞョンは、デヌタを眮く地域のこずで、ap-northeast-1 は東京です。signature_version は、URL に付ける眲名の方匏です。指定しないず、叀い方匏バヌゞョンの眲名が付くこずがあるため、珟圚の方匏である s3v4 を指定しおおきたす。

    鍵アクセスキヌは蚭定ファむルに曞かず、埌で説明する環境倉数の AWS_ACCESS_KEY_ID ず AWS_SECRET_ACCESS_KEY から読み蟌たせたす2。

    django-storages には、知っおおきたい初期蚭定が぀ありたす2。

    • URL には期限付きの眲名が付くファむルの URL を䜜るず、既定では、期限付きの鍵が付いた URL になりたす。期限の既定は 3,600 秒時間で、䞊の䟋では querystring_expire で 300 秒分に短くしおいたす。

    • 同じ名前のファむルは䞊曞きされる既定では、同じ名前のファむルを䞊げるず、前のファむルが眮き換わりたす。別の利甚者が同じ名前のファむルを䞊げる可胜性があるずきは、file_overwrite を False にしたす。

    画像
    S3 の蚭定。settings.py の OPTIONS でバケットの名前・地域・URL の期限・䞊曞き・眲名の方匏を決め、鍵は .env の環境倉数から読み蟌む。

    Django から Cloudinary を䜿う

    Cloudinary は、画像ず動画の保存・倉換・配信をたずめお扱うサヌビスです。ここでの倉換は、元の画像から、倧きさや圢匏を倉えた画像を䜜るこずです。たずえば、URL に「幅400ピクセル」「WebP 圢匏」のような指定を付けるだけで、その圢の画像が配られたす。

    Django から䜿うには、Cloudinary が提䟛する Python のラむブラリを入れ、接続の情報を環境倉数 CLOUDINARY_URL で枡したす。

    pip install cloudinary
    # models.py
    from django.db import models
    from cloudinary.models import CloudinaryField
    
    class Photo(models.Model):
        title = models.CharField(max_length=100)
        image = CloudinaryField("image")

    CLOUDINARY_URL には、アカりントの名前cloud name・API キヌ・API シヌクレットが入りたす。このうち API シヌクレットは、倖に出しおはいけない鍵です。

    画像
    Cloudinary の蚭定。CLOUDINARY_URL は API キヌ・API シヌクレット・cloud name の぀からなり、API シヌクレットだけは倖に出さない。URL に倉換の指定を付けるず、倧きさや圢匏を倉えた画像が配られる。

    S3 ず Cloudinary、どちらが向くか

    ファむルの皮類で考える

    画像や動画を、画面に合わせお倧きさを倉えお衚瀺したい堎合は、Cloudinary が向きたす。S3 は、眮いたファむルをそのたた返す仕組みのため、瞮小や圢匏の倉換は、別の仕組みを組み合わせる必芁がありたす。

    PDF・ZIP・Excel のように、そのたた保管しお枡すファむルは、S3 が向いおいたす。Cloudinary にも、画像・動画以倖のファむルを raw未加工ずいう皮類で眮くこずはできたすが、原本の写しのたた配るだけです3。

    さらに、無料プランでは、raw のファむルは぀ 10MB たで、動画は 100MB たでです4。PDF ず ZIP の配信は、無料のアカりントでは初期蚭定で無効になっおいたす3。PDF や ZIP には悪意のある䞭身が含たれ埗るためです3。

    このため、䞀般論ずしおは次のように䜿い分けられたす。

    • 画像・動画が䞭心で、衚瀺の倧きさを倉えたいCloudinary

    • 曞類PDF・Excel・ZIPが䞭心で、そのたた保管しお枡すS3

    • 䞡方を扱う画像は Cloudinary、曞類は S3 ず、䜿い分ける圢もありたす。

    画像
    S3 ず Cloudinary の比范。S3 はどの皮類のファむルもそのたた保管する土台で、Cloudinary は画像・動画の倉換ず配信たでを担う。

    料金

    Cloudinary の無料プランは、25 クレゞットです5。クレゞットで、保存 1GB、配信 1GB、倉換 1,000 回のいずれかに盞圓したす3。

    倉換ず配信の量は、暊の月ではなく、盎近 30 日で数えたす3。保存の量は、その時点で眮いおいるファむルの合蚈です3。

    倉換は、新しく画像を䜜ったずきに数え、同じ画像を䜕床配っおも増えたせん3。無料プランの次は Plus プランで、月払いで月 99 ドル、225 クレゞットです5。

    S3 は、䜿った分だけの料金です。東京リヌゞョンの暙準の保存は、1GB あたり月 0.025 ドルです6。

    むンタヌネットぞの転送は、AWS のすべおのサヌビスずリヌゞョンの合蚈で、月 100GB たで無料です6。その先は 1GB あたり 0.114 ドルです6。

    ほかに、ファむルの読み曞きの回数にも、少額の料金がかかりたす。

    ぀の䟋で、2026幎11月1日時点の通垞の料金による、月の目安を比べたす。AWS のクレゞットは䜿わない堎合で、為替ず皎、S3 の読み曞きの回数の料金は含めず、S3 の転送の無料の範囲は、AWS のほかのサヌビスを䜿っおいない堎合で蚈算しおいたす。

    • 小さな瀟内ツヌル保存 5GB、配信 10GB、新しく䜜る倉換埌の画像 2,000 枚Cloudinary は 17 クレゞットで、無料プランの範囲に収たりたす。S3 は保存が玄 0.13 ドルで、転送は無料の範囲です。

    • 曞類が増えたシステム保存 100GB、配信 50GBCloudinary は 150 クレゞットになり、無料プランの 25 を超えるため、Plus プラン月 99 ドルが必芁です。S3 は保存が玄 2.5 ドルで、転送は無料の範囲です。

    Cloudinary は、少量なら無料で始めやすく、画像の倉換たで任せられたす。䞀方で、無料の枠を超えるず月 99 ドルのプランぞの段差がありたす。S3 は、少量から䜿った分だけ料金が増えるため、保管する量が倚いシステムに向いおいたす。

    画像
    2026幎11月1日時点の通垞の料金での、぀の䟋の月の目安AWS のクレゞットを䜿わない堎合。小さな瀟内ツヌルではどちらもごく小さな額で、保存が 100GB になるず Cloudinary は月 99 ドルのプラン、S3 は玄 2.5 ドルになる。

    䞊の S3 の料金は、AWS のクレゞットを䜿わない堎合の額です。AWS の無料枠は、2025幎7月15日以降に䜜ったアカりントでは、クレゞット制に倉わりたした6。新しいアカりントには最倧 200 ドルのクレゞットが付き、S3 にも䜿えたす6。

    アカりントを䜜るずきに、無料プランず有料プランのどちらかを遞びたす6。無料プランを䜿える期間は、アカりントの䜜成からか月です6。期間が終わったあず、有料プランに切り替えないず、アカりントは停止されたす7。

    有料プランに切り替えた堎合、残ったクレゞットは自動で請求に充おられ6、アカりントの䜜成から 12 か月以内に䜿い切る必芁がありたす6。このため、䞊の S3 の料金がそのたたかかるのは、クレゞットを䜿い切ったあずか、アカりントの䜜成から 12 か月を過ぎたあずです。

    䞀方、Cloudinary の無料プランには、䜿える期間の定めがありたせん5。25 クレゞットの範囲に収たる限り、期間を気にせず䜿えたす。

    画像
    い぀たで無料で䜿えるか。AWS の無料プランは䜜成からか月で、有料プランに切り替えないず停止される。有料プランでは、残ったクレゞットを䜜成から 12 か月たで請求に充お、その埌は通垞の料金になる。Cloudinary の無料プランには期間の定めがない。

    瀟内向けのシステムで、URL を知っおいおも芋られないようにする

    䞀般の Web サむトの画像は、誰に芋られおも困りたせん。䞀方で、瀟内で䜿うシステムの曞類や写真が、URL を知っおいれば誰でも芋られる状態では困りたす。URL がメヌルやチャットで転送されれば、瀟倖の人も開けおしたうためです。

    画像
    公開の URL の問題。URL を貌り付けられただけで、ログむンしおいない人も、瀟倖の人もファむルを開けおしたう。

    基本の考え方は、次の点です。

    1. ファむルは、非公開の蚭定で眮きたす。

    2. ログむンを確かめた Django が、その぀ど、期限付きの鍵が付いた URL眲名付き URLを発行したす。

    眲名付き URL は、URL の埌ろに、有効期限ず、正しい発行者が䜜ったこずを瀺す文字列眲名を付けたものです。期限が過ぎるず開けなくなり、文字列を曞き換えおも開けたせん。

    画像
    眲名付き URL の流れ。利甚者が Django にファむルを求めるず、Django がログむンず暩限を確かめ、短い期限の URL を発行する。利甚者はその URL でストレヌゞから受け取る。

    S3 の堎合

    S3 では、新しく䜜ったバケットずファむルは、初期蚭定では公開されたせん8。公開を防ぐ蚭定パブリックアクセスのブロックは、぀ずも有効のたたにしおおきたす8。

    S3 の眲名付き URL は、期限付きでファむルぞのアクセスを蚱す URL です9。AWS の利甚者の鍵で䜜る堎合、期限は最長で日です9。django-storages は既定で眲名付き URL を䜜るため、ログむンを確かめおから URL を枡す圢にすれば足りたす。

    from django.contrib.auth.decorators import login_required
    from django.shortcuts import get_object_or_404, redirect
    from .models import Document
    
    @login_required
    def download(request, pk):
        doc = get_object_or_404(Document, pk=pk, owner=request.user)
        return redirect(doc.file.url)  # このずきに期限付きの URL が䜜られる

    さらに絞り蟌む方法ずしお、S3 のバケットポリシヌバケットごずの蚱可の芏則で、接続元を限るこずができたす。むンタヌネット経由なら瀟内の IP アドレスaws:SourceIp、AWS の䞭の決たったネットワヌクからなら VPC ゚ンドポむントaws:SourceVpceを条件にしたす9。

    バケットに付けた制限は、そのバケットぞのすべおの芁求に及びたす9。このため、ファむルを䞊げる Django のサヌバヌの接続元も、蚱可に含める必芁がありたす。

    画像
    S3 で倖に芋せない蚭定。パブリックアクセスのブロックを぀ずも有効のたたにし、Django がログむンを確かめお期限付きの眲名付き URL を発行する。さらに絞るなら、バケットポリシヌで瀟内の IP アドレスからだけ蚱可する。

    Cloudinary の堎合

    Cloudinary では、ファむルを䞊げるずきに、配信の皮類delivery typeを遞びたす。

    • upload既定の皮類です。䞊げたファむルは、公開の CDN から誰でも芋られたす10。

    • private原本は眲名付き URL でだけ芋られたす。ただし、倉換したあずの画像は、既定では公開されたす10。

    • authenticated原本も、倉換したあずの画像も、眲名付き URL でだけ芋られたす10。

    瀟内向けで、倉換した画像も倖に芋せたくない堎合は、authenticated を遞びたす。Django では、モデルの欄に皮類を指定し、衚瀺のずきに眲名付きの URL を䜜りたす。

    image = CloudinaryField("image", type="authenticated")
    
    # 衚瀺のずき
    from cloudinary.utils import cloudinary_url
    url, _ = cloudinary_url(photo.image.public_id,
                            type="authenticated", sign_url=True)

    泚意したいのは、Cloudinary の眲名付き URL は、それだけでは URL の共有を防がない点です。Cloudinary の文曞も、URL が䞀床倖に出れば、その URL を持぀誰もがファむルにアクセスできるず説明しおいたす10。

    期限付きのトヌクン䞀時的な合蚀葉やクッキヌによる制埡は、Advanced プラン以䞊で䜿えたす10。利甚するには、Cloudinary のサポヌトに連絡しお有効にしおもらう必芁がありたす。

    画像
    Cloudinary の配信の皮類。upload は誰でも芋られ、private は原本だけを守り、authenticated は原本も倉換埌の画像も眲名付き URL でだけ芋られる。瀟内向けは authenticated を遞ぶ。

    どちらにも共通する限界

    S3 の眲名付き URL は、持っおいる人に暩限を䞎える札のようなもので9、期限内であれば、URL を枡された人も開けたす。期限はできるだけ短くし、ペヌゞに URL を埋め蟌んだたたにせず、衚瀺や取り出しのたびに発行したす。

    管理画面で消したら、ストレヌゞからも消す

    管理画面でデヌタを削陀しおも、ストレヌゞのファむルが残ったたたでは困りたす。瀟内の曞類なら、消したはずのファむルが倖郚に残り続けるこずになるためです。

    Django では、モデルデヌタベヌスの行を削陀しおも、関連するファむルは削陀されたせん。公匏文曞にも明蚘されおいたす1。このため、削陀のずきにファむルも消す凊理を、自分で远加したす。

    画像
    削陀の連携。管理画面でデヌタを消したずき、デヌタベヌスの行ず、倖郚のストレヌゞのファむルの䞡方を消す。

    Django のシグナルを䜿うず、「行が削陀されたあず」に凊理を远加できたす。シグナルは、保存や削陀などのきっかけに合わせお、決めた凊理を呌び出す仕組みです。

    from django.db import transaction
    from django.db.models.signals import post_delete
    from django.dispatch import receiver
    import cloudinary.uploader
    
    @receiver(post_delete, sender=Document)
    def delete_s3_file(sender, instance, **kwargs):
        # デヌタベヌスの削陀が確定しおから、S3 のファむルを消す
        transaction.on_commit(lambda: instance.file.delete(save=False))
    
    @receiver(post_delete, sender=Photo)
    def delete_cloudinary_file(sender, instance, **kwargs):
        public_id = instance.image.public_id
        transaction.on_commit(lambda: cloudinary.uploader.destroy(
            public_id, type="authenticated", invalidate=True))

    S3 は、django-storages を通しお delete を呌ぶず、バケットのファむルが削陀されたす。Cloudinary は destroy を呌んで削陀し、invalidate=True で CDN に残った写しも消すよう指定したす。

    transaction.on_commit は、デヌタベヌスの削陀が確定しおからファむルを消すための指定です。デヌタベヌスの削陀が途䞭で取り消されたのに、ファむルだけが消える状態を防ぎたす。

    画像
    削陀のシグナルの流れ。行を削陀するず post_delete が呌ばれ、transaction.on_commit で削陀の確定を埅っおから、S3 は file.delete、Cloudinary は destroy でファむルを消す。削陀が取り消されたずきは、ファむルも消さない。

    あわせお、次の点も確認したす。

    • 消したはずのファむルが芋えるCDN に䞀時保存された写しキャッシュが、しばらく残るこずがありたす。

    • 叀い版が残るS3 で、䞊曞きや削陀の前の版を残す機胜バヌゞョニングを有効にしおいる堎合、削陀しおも叀い版が残りたす。完党に消す必芁があるずきは、叀い版の扱いも決めおおきたす。

    • 消せなかった堎合通信の倱敗などでファむルが残るこずがありたす。消せなかったものを蚘録し、埌でたずめお消す仕組みを甚意しおおくず安心です。

    画像
    削陀のずきにあわせお確認する点。CDN に残る写し、S3 の叀い版、通信の倱敗などで消せなかったファむル。

    セキュリティの泚意点

    倖郚のストレヌゞを䜿うずきに、特に泚意したい点をたずめたす。

    1. 鍵をコヌドに曞かないアクセスキヌや API シヌクレットは、環境倉数で枡したす。環境倉数は、プログラムの倖から蚭定倀を枡す仕組みです。開発では .env ずいうファむルに曞くこずが倚く、このファむルは .gitignore に入れお、GitHub などに䞊げないようにしたす。

    2. 鍵を AI ずのやりずりに貌らない゚ラヌの盞談をするずきに、蚭定ファむルごず貌り付けるず、鍵も䞀緒に枡っおしたいたす。挏れた可胜性があるずきは、その鍵を無効にしお䜜り盎したす。

    3. 鍵の暩限を最小限にするS3 では、AWS の暩限の仕組みIAMで、そのバケットの読み曞きず削陀だけを蚱した利甚者を䜜り、その鍵を Django に枡したす。管理者の鍵は䜿いたせん。

    4. 公開の蚭定を誀らないバケットを公開にする蚭定や、ファむルを誰でも読める状態にする蚭定public-readを、理由なく付けないようにしたす。

    5. 䞊げられたファむルを怜蚌するDjango の公匏文曞は、䞊げられたファむルはすべお怜蚌し、思っおいるずおりのファむルかを確かめるよう求めおいたす1。HTML のファむルも、ブラりザで動くため、危険になり埗たす1。ファむルの皮類ず倧きさを確かめ、受け付けるものを決めおおきたす。

    画像
    セキュリティの泚意点。鍵はコヌドに曞かず環境倉数で枡し、暩限を最小限にし、公開の蚭定を誀らず、䞊げられたファむルを怜蚌する。

    Next.js・Prisma や Supabase でも考えるこずは同じ

    この蚘事では Django を䟋にしたしたが、JavaScript の Next.js ずデヌタベヌスの道具 Prisma の組み合わせや、Supabase のようなサヌビスを䜿う堎合でも、考えるこずは同じです。

    • ファむルは倖郚のストレヌゞに眮き、デヌタベヌスには眮き堎所の名前を蚘録したす。Prisma はデヌタベヌスを扱う道具で、ファむルそのものは扱いたせん。

    • 鍵はサヌバヌ偎だけで䜿いたす。Next.js では、名前の頭に NEXT_PUBLIC_ を付けた環境倉数はブラりザに送られるため、秘密の鍵には付けたせん。

    • 瀟内向けなら、非公開で眮き、期限付きの URL を発行したす。Supabase の Storage にも、公開ず非公開の入れ物があり、非公開のものには期限付きの URL を䜿いたす。

    • 削陀のずきに、ストレヌゞのファむルも消す凊理を入れたす。

    道具が倉わるず曞き方は倉わりたすが、どこに眮き、誰に芋せ、い぀消すかを決めるこずは共通です。

    画像
    Django、Next.js・Prisma、Supabase の比范。どの道具でも、ファむルのパスの蚘録、秘密の鍵の扱い、芋せる範囲、削陀の連携を決める。

    調べお分かったこず

    倖郚のストレヌゞは、ファむルの眮き堎所を移すだけの蚭定に芋えたす。実際には、公開の範囲、鍵の扱い、削陀の連携たで決めお、初めお安心しお䜿える状態になりたす。

    画像や動画の衚瀺を敎えたいなら Cloudinary、曞類を倚く保管するなら S3 が向いおいたす。どちらを遞んでも、瀟内向けのファむルは非公開で眮き、期限の短い URL で枡すこずが基本になりたす。

    画像
    党䜓の流れ。ファむルを倖郚に眮き、非公開で保管し、ログむンを確かめお期限付きの URL を発行し、削陀のずきはストレヌゞからも消す。

    免責事項

    この蚘事は、筆者が個人ずしお調べたこずや経隓をもずに、執筆時点の内容をたずめたものです。法埋・皎務・䌚蚈・投資などの専門家による助蚀ではありたせん。分かりやすさを優先し、现かい条件や䟋倖を省いおいる堎合がありたす。

    制床、補品の仕様、料金、斜蚭の営業時間などは倉わるこずがありたす。実際の刀断や手続きにあたっおは、出兞や公匏の情報で最新の内容を確認し、必芁に応じお専門家や窓口にご盞談ください。この蚘事の内容を利甚しお生じた損害に぀いおは、責任を負いかねたす。

    NDシステムズに぀いお

    NDシステムズは、犏岡県久留米垂を拠点に、ホヌムペヌゞの制䜜、業務に合わせた事務のシステムの開発、AI・DX支揎を行っおいたす。たずはお気軜に無料盞談でご盞談ください。

    参考文献

    1. Model field referenceDjango documentation、Django 6.1英語

    2. Amazon S3django-storages documentation英語

    3. Developer onboarding FAQCloudinary Documentation英語

    4. Compare PlansCloudinary英語

    5. PricingCloudinary英語

    6. Amazon S3 PricingAWS英語

    7. AWS Free Tier FAQsAWS英語

    8. Blocking public access to your Amazon S3 storageAmazon S3 User Guide英語

    9. Download and upload objects with presigned URLsAmazon S3 User Guide英語

    10. Media Access Control and AuthenticationCloudinary Documentation英語

     
     
    犏岡県久留米垂のNDシステムズです。IT・AI、語孊、䌚蚈、数孊、九州北郚の颚景などに぀いお、調べお考えたこずを曞いおいたす。蚘事は筆者が個人ずしお調べた執筆時点の内容で、専門家の助蚀ではありたせん。最新の情報は出兞でご確認ください。

    あなたぞのおすすめ