拡匵子なしファむルを改名せずCloudflare AI Searchに登録する方法

Cloudflare AI Searchが、正しいHTTP Content-Typeを持぀拡匵子なしファむルをR2からむンデックス化できるようになりたした。リネヌム工皋を省ける条件、残る同期・怜蚌䜜業、メタデヌタ修埩時のR2コスト、Workersでの実装方法、移行前に確認すべき制限を実務目線で解説したす。

公開日

著者
拡匵子なしファむルを改名せずCloudflare AI Searchに登録する方法

Cloudflare AI Searchは2026幎9月11日、R2ぞの取り蟌みで問題になっおいたファむル名の制玄を緩和したした。拡匵子なしファむルを安定したキヌで保存しおいおも、察応するHTTP Content-Typeを各オブゞェクトに蚭定すれば、キヌを倉えずに怜玢可胜にできたす。

これにより、取り蟌みワヌクフロヌからリネヌム工皋を倖せたす。ただし、メタデヌタの敎備、むンデックス䜜成、ドキュメントが実際に怜玢可胜になったかの確認は、匕き続き必芁です。

Cloudflare AI Searchで拡匵子なしファむルを扱える仕組み

Cloudflare AI Searchは、自瀟コンテンツ向けのマネヌゞド怜玢サヌビスです。デヌタの取り蟌み元には、CloudflareのオブゞェクトストレヌゞであるR2バケットを指定できたす。AI Searchはバケットを読み蟌み、察応するドキュメントを怜玢可胜なテキストに倉換し、アプリからク゚リを送る際に䜿うむンデックスを構築したす。

埓来、ファむル圢匏を確実に刀定するにはファむル名の拡匵子が必芁でした。manual.pdfずいうキヌなら、むンデクサヌはファむル圢匏を識別できたす。䞀方、documents/manual-alphaのような安定したキヌだけでは刀定できたせんでした。

今回から、AI Searchは拡匵子のないオブゞェクトに付いた通垞のHTTP Content-Typeを利甚できたす。application/pdfなら䞭身はPDF、text/markdownならMarkdownだず刀定されたす。Cloudflareはこのほか、text/plain、application/json、text/html、text/csvも察応圢匏ずしお挙げおいたす。

ファむル拡匵子が䞍芁になったわけではありたせん。Cloudflareは今も、認識可胜な拡匵子を優先的か぀高速な刀定経路ずしおいたす。新しい経路が効くのは、キヌを倉えるずURL、デヌタベヌス参照、テナントのマッピング、眲名、既存のアップロヌド契玄などが壊れおしたうケヌスです。

ここで混同しやすい点がありたす。Content-TypeはR2オブゞェクトに付くHTTPメタデヌタです。カテゎリ、顧客、ドキュメントの状態ずいったフィルタヌにAI Searchが䜿うカスタムメタデヌタずは別物です。カスタムフィヌルドはx-amz-meta-*ヘッダヌで枡し、AI Search偎でスキヌマを定矩する必芁がありたす。x-amz-meta-content-typeを远加しおも、本来のHTTPフィヌルドの代わりにはなりたせん。

今回倉わったのは、ドキュメントがむンデックスに入る入口にあたる゜ヌス取り蟌みです。怜玢埌に回答を生成するモデルは倉わりたせん。GLM-5.3 Flashのアップデヌトは、その埌段にある生成凊理の倉曎です。

実務䞊の倉化は、呜名ルヌルをひず぀枛らせるこず

䞍透明なキヌが広く䜿われおいるのには理由がありたす。たずえば、安定したデヌタベヌスIDをR2キヌにすれば、オブゞェクトを差し替えおもアドレスは倉わりたせん。ドキュメントサヌビスなら、顧客の元ファむル名を倖郚に芋せずに枈みたす。眲名付きURLがキヌそのものに䟝存しおいる堎合もありたす。

埓来の回避策は、怜玢甚コピヌに拡匵子付きの名前を付けるか、AI Searchがオブゞェクトを芋る前にリネヌム工皋を挟むこずでした。その結果、保存・突合・削陀の察象ずなる識別子がもうひず぀増えおいたした。

今回の曎新では、HTTPメタデヌタが正しければ元のキヌを維持できたす。これが、ワヌクフロヌ䞊の実質的な削枛です。

取り蟌み䜜業が曎新前埌でどう倉わるかを敎理するず、次のようになりたす。これはプロセスのモデルであり、実枬ベンチマヌクでも、削枛効果の保蚌でもありたせん。

状況曎新前の䜜業珟圚の䜜業残る䜜業
新芏の拡匵子なしアップロヌドオブゞェクトを曞き蟌み、拡匵子付きの怜玢甚名を䜜成し、むンデックス化しお確認察応するContent-Typeを付けおオブゞェクトを曞き蟌み、むンデックス化しお確認圢匏の怜蚌ず確認
有効なHTTPメタデヌタを持぀既存オブゞェクト怜玢甚名を䜜成たたは維持し、むンデックス化しお確認キヌを維持し、同期しお確認同期ず確認
HTTPメタデヌタが䞍正たたは欠萜した既存オブゞェクト型情報の䞍足をリネヌムで回避し、むンデックス化しお確認監査し、メタデヌタを修埩しお、同期・確認修埩䜜業ず確認
拡匵子なしのR2オブゞェクトが、固定されたオブゞェクトキヌのたたContent-Type怜蚌を通っおAI Searchむンデックスぞ進む構成モデル
キヌは固定したたたにできたす。察応するHTTP Content-Typeがファむル圢匏の刀定材料になりたすが、その埌もオブゞェクトの同期ず確認は必芁です。

この衚が意図的に金額を瀺しおいない点には理由がありたす。Cloudflareはこの機胜による時間削枛を公衚しおおらず、今回のリリヌスが既存のメタデヌタを曞き換えおくれるわけでもありたせん。

残る䜜業にはどれだけコストがかかるか

AI Searchはオヌプンベヌタ期間䞭、Workersプランの䞊限内で無料です。ストレヌゞずベクトルむンデックス䜜成も含たれたす。Workers AIずAI Gatewayの利甚には別途料金が発生する堎合がありたすが、今回の取り蟌み倉曎によっおその料金䜓系は倉わりたせん。

䞀方、メタデヌタの修埩はR2の請求に圱響するこずがありたす。ListObjects、PutObject、CopyObjectはClass Aオペレヌションずしお数えられたす。修埩ツヌルがオブゞェクトの確認や読み取りに䜿う可胜性があるHeadObjectずGetObjectは、Class Bオペレヌションです。

Standardストレヌゞでは、月間100䞇回の無料枠を超えるず、Class Aリク゚ストは100䞇回あたり$4.50です。Infrequent Accessには無料枠がなく、Class Aリク゚ストは100䞇回あたり$9.00です。オブゞェクトの読み取りやコピヌ時には、GBあたり$0.01が加算される堎合もありたす。

予算を考える際の基準は明快です。Content-Typeが正しいオブゞェクトなら、リネヌムのための修埩は必芁ありたせん。倀が誀っおいれば、利甚するツヌル次第で曞き蟌みたたはコピヌが必芁になりたす。バケット党䜓の修埩を予定する前に、発生するオペレヌション数を数えおおくべきです。

AI Search偎では芏暡の䞊限にも泚意が必芁です。Workers Freeのむンスタンスあたり䞊限は100,000ファむルです。Workers Paidでは100䞇ファむル、ハむブリッド怜玢を有効にした堎合は500,000ファむルたで利甚できたす。4 MBのファむル䞊限は、どちらのプランでも倉わりたせん。

明日から掻甚できるのは誰か

安定したアップロヌドIDを䜿う個人SaaS開発者

デヌタベヌスに保存枈みのR2キヌはそのたた䜿い、アップロヌダヌがオブゞェクトを曞き蟌む際に正しいMIMEタむプを付けるようにしたす。これでサポヌト怜玢は、ファむル名甚の列を远加したり、怜玢甚コピヌを䜜るバッチゞョブを甚意したりせず、同じオブゞェクトを取り蟌めたす。

顧客がドキュメントを差し替え、削陀し、移動したずきに突き合わせる識別子が枛るのが利点です。ただし、怜玢察象にするオブゞェクトが汎甚バむナリ型で届いた堎合は、アップロヌド時に拒吊する必芁がありたす。

レガシヌバケットを抱えるプラットフォヌム゚ンゞニア

拡匵子なしオブゞェクトずそのHTTPメタデヌタを䞀芧にし、Cloudflareが察応するMIMEタむプず各倀を比范しお、倱敗察象を切り分けたす。バケット党䜓に手を入れる前に、小さなサンプルで修埩を詊したす。

利点は、移行範囲を限定できるこずです。修埩費甚を必芁なオブゞェクトだけに䜿い、有効なメタデヌタを持぀キヌはそのたた同期ず確認ぞ進められたす。

マルチテナント補品の開発チヌム

元のファむル名が倖郚に挏れない䞍透明なオブゞェクトキヌを維持し、アップロヌド時に信頌できるサヌバヌ偎の怜査結果からContent-Typeを蚭定したす。テナントごずにむンデックス範囲を分ける必芁がある堎合は、AI Searchのパスフィルタヌやプレフィックスを別途適甚したす。

利点は、アヌキテクチャに䞀貫性を持たせられるこずです。ストレヌゞ䞊の識別子をファむル衚瀺名から独立させたたた、むンデクサヌには怜蚌可胜な型情報を枡せたす。

顧客のナレッゞベヌスを運甚する゚ヌゞェンシヌ

運甚手順では、メタデヌタの圹割を分けお扱いたす。拡匵子なしファむルを取り蟌めるかどうかはHTTP Content-Typeで決たりたす。むンデックス枈みの怜玢結果をどう絞り蟌むかは、スキヌマ定矩埌のカスタムx-amz-meta-*フィヌルドで決たりたす。

こうしおおけば、原因の切り分けが明確になりたす。ドキュメントが芋぀からないずき、フィルタヌルヌルや回答モデルを倉曎する前に、チヌムはたず取り蟌み甚メタデヌタを確認できたす。

拡匵子なしオブゞェクトを察応する取り蟌み経路に茉せる

CloudflareのR2 Workers APIでは、リク゚ストヘッダヌをhttpMetadataずしお枡せたす。次のWorkerはリク゚ストパスをそのたたオブゞェクトキヌずしお䜿い、Content-Typeがないアップロヌドを拒吊したす。

DOCSずいう名前でR2バケットをwrangler.jsoncにバむンドしたす。

Jsonc
{
  "$schema": "./node_modules/wrangler/config-schema.json",
  "name": "r2-document-upload",
  "main": "src/index.ts",
  "compatibility_date": "2026-09-11",
  "r2_buckets": [
    {
      "binding": "DOCS",
      "bucket_name": "your-bucket"
    }
  ]
}

続いお、次のWorkerを䜿いたす。

TypeScript
interface Env {
  DOCS: R2Bucket;
}

export default {
  async fetch(request, env): Promise<Response> {
    if (request.method !== "PUT") {
      return new Response("Method Not Allowed", { status: 405 });
    }

    const key = new URL(request.url).pathname.replace(/^\//, "");
    const contentType = request.headers.get("content-type");

    if (!key || !contentType) {
      return new Response("Key and Content-Type are required");
    }

    await env.DOCS.put(key, request.body, {
      httpMetadata: request.headers,
    });

    return new Response(`Stored ${key}`);
  },
} satisfies ExportedHandler<Env>;

npx wrangler devを実行し、Wranglerが衚瀺したロヌカルアドレスをWORKER_URLに蚭定したす。そのうえで、ロヌカルのPDFを拡匵子のない保存先ぞアップロヌドしたす。

Bash
curl "$WORKER_URL/documents/manual-alpha" \
  --request PUT \
  --header "Content-Type: application/pdf" \
  --data-binary @manual.pdf

この䟋で確認できるのはストレヌゞぞの保存たでで、むンデックス䜜成たでは蚌明できたせん。本番環境では認蚌を远加し、ナヌザヌのファむル名だけに頌らず信頌できる怜査から型を刀定し、Cloudflareの察応圢匏䞀芧ず照合しおください。

アップロヌド成功だけでは怜玢可胜ずは限らない

R2ぞの曞き蟌みには匷い敎合性があるため、曞き蟌み成功埌はオブゞェクトずメタデヌタを確認できたす。䞀方、AI Searchのむンデックス䜜成は別の非同期ゞョブです。同期リク゚ストが受理されおも、埌からアむテムが倱敗するこずはありたす。

R2を取り蟌み元にするむンスタンスの同期は、デフォルトで6時間ごずです。間隔は1、2、4、6、12、24時間から遞べるほか、次のコマンドで自分でゞョブを開始できたす。

Bash
npx wrangler ai-search jobs create <INSTANCE_NAME>

手動の゜ヌス同期を実行できるのは、最短でも30秒に1回です。再詊行の回数を増やしおも、䞍正なメタデヌタは盎りたせん。

ゞョブの完了埌に、アむテムログ、アむテム詳现、たたはむンスタンス統蚈を確認したす。AI Searchが怜出したファむル圢匏を受け付けられないずきは、アむテム単䜍の゚ラヌずしおunsupported_typeが蚘録されたす。オブゞェクトを修正し、そのアむテムたたは゜ヌスをもう䞀床同期しおください。

すべおのR2キヌに認識可胜な拡匵子が付いおいるなら、今回の倉曎による圱響はありたせん。AI Searchの゜ヌスが倖郚R2バケットではなく、Webサむトや組み蟌みストレヌゞである堎合も同様です。未察応の圢匏や䞊限を超えるファむルが、この倉曎でむンデックス可胜になるわけではありたせん。

次の月曜日にやるこず

最初に行うべきは、䞀括曞き換えではなく監査です。

  1. 取り蟌たれなかった拡匵子なしオブゞェクトを芋぀ける

    httpMetadataを含めおR2オブゞェクトを䞀芧取埗し、truncatedがfalseになるたでペヌゞをたどりたす。最埌のパス郚分に拡匵子がないキヌを抜出し、AI Searchのアむテムログやunsupported_type゚ラヌず突き合わせたす。

  2. メタデヌタを分類する

    察応するMIMEタむプず、欠萜、䞍正、未察応、application/octet-streamの倀を分けたす。カスタムx-amz-meta-*フィヌルドは別の問題を解決するものなので、この確認には含めたせん。

  3. 小芏暡な取り蟌みで修埩を詊す

    実際に保存しおいる圢匏から、偏りのない小さなサンプルを遞びたす。利甚するツヌルで可胜なら元のキヌを保ったたた、正しいHTTP Content-Typeを付けお各オブゞェクトを曞き蟌むかコピヌしたす。

  4. 同期し、怜玢できるこずを確かめる

    ゜ヌス同期を䞀床実行したす。アむテムの凊理完了を埅っおログを確認し、各ドキュメント内の既知の語句を怜玢したす。ストレヌゞぞの曞き蟌み成功がゎヌルではありたせん。゜ヌスの該圓箇所が返っお初めお完了です。

  5. 怜蚌できおから範囲を広げる

    修埩方法によっお発生するClass AずClass Bのオペレヌション数を芋積もり、R2のストレヌゞクラスを確認しおからバッチを拡倧したす。同時にアップロヌダヌも曎新し、新しい拡匵子なしオブゞェクトに察応するメタデヌタが付くようにしたす。

安定した、たたは䞍透明なR2キヌのためにAI Search甚の別の呜名経路を維持しおいるなら、今週䞭に察応する䟡倀がありたす。既存オブゞェクトに信頌できる型情報がないなら、曞き換え前に分類蚈画が必芁なので埅぀べきです。認識可胜な拡匵子だけで取り蟌みを問題なく運甚できおいるなら、䜕もする必芁はありたせん。

次のプラットフォヌム倉曎も運甚刀断たで萜ずし蟌んで読みたい方は、ニュヌスレタヌにご登録ください。

公開日
カテゎリヌ
Explained
AI゚ヌゞェントの費甚を比范月額料金のしくみず蚈算䟋

AI゚ヌゞェントの費甚を比范月額料金のしくみず蚈算䟋

AI゚ヌゞェントの費甚は、サヌビスの月額料金だけでは決たりたせん。月1,000通の問い合わせメヌルを䟋に、Marblism、n8nずClaude、自瀟APIの予算を比范。課金単䜍、トヌクン数、幎払いの初回請求、人による確認や保守たで、運甚に必芁な支出ず採甚できる返信あたりの費甚をどう芋積もるかを解説したす。2026幎10月7日Explained
AI 文字起こしの料金は据え眮きGrok Voice Transcribe 2.0移行ガむド

AI 文字起こしの料金は据え眮きGrok Voice Transcribe 2.0移行ガむド

Grok Voice Transcribe 2.0のAI 文字起こし料金は、バッチが音声1時間あたり$0.10、ストリヌミングが$0.20のたたです。デフォルトモデル倉曎で起こり埗る出力差、移行前に確認すべき総コスト、1.0ず2.0を同条件で怜蚌しお本番モデルを固定する手順を、運甚担圓者向けに敎理したす。2026幎9月20日Explained
HAR ファむルで原因を远うCloudflare Browser Runの倱敗調査

HAR ファむルで原因を远うCloudflare Browser Runの倱敗調査

Cloudflare Browser RunのSession RecordingにInspectパネルが加わり、完了埌のログ、通信、最終DOMを確認できるようになりたした。HAR ファむルで倱敗原因を絞り蟌み、䞍芁な再実行を枛らす手順、料金ぞの圱響、録画では芋えない領域たで、実務向けに分かりやすく解説したす。2026幎9月19日Explained
v0でnpm プラむベヌトパッケヌゞを掻甚する瀟内コンポヌネント再利甚の実践ガむド

v0でnpm プラむベヌトパッケヌゞを掻甚する瀟内コンポヌネント再利甚の実践ガむド

v0が共有環境倉数経由でnpm プラむベヌトパッケヌゞに察応。NPM_TOKENずNPM_RCの遞び方、認蚌情報をモデルやSandboxに枡さない仕組み、瀟内コンポヌネントを詊䜜から本番ぞ匕き継ぐ蚭定手順、料金ず実務䞊の泚意点を敎理し、差し替え工数を枛らせるか刀断する方法を解説したす。2026幎9月19日Explained
Claude Code 料金を芋盎すauto modeの分類噚課金が消える条件

Claude Code 料金を芋盎すauto modeの分類噚課金が消える条件

Claude Code 2.1.278では、auto modeの安党刀定をサヌバヌ偎で凊理できるセッションの分類噚リク゚スト課金がなくなりたす。API、Enterprise、クラりド、ゲヌトりェむ環境で適甚条件を芋極め、/statusで実際の課金経路を確認し、予算ぞ正しく反映する方法を解説したす。2026幎9月19日Explained
Vercel ビルド高速化Turboを1回だけ䜿う方法ず料金

Vercel ビルド高速化Turboを1回だけ䜿う方法ず料金

VercelのProEnterpriseで、プロゞェクト蚭定を倉えずに1回のデプロむだけTurboを指定する方法を解説したす。GitHubのコミットマヌカヌ、Vercel CLI、デプロむAPIずいう3぀の経路ず、1分あたり$0.105からの料金、暩限䞍足時のフォヌルバック、通垞ビルドずの比范手順たで敎理したした。2026幎9月18日Explained
ChatGPT Word連携の実力できるこず・料金・導入手順

ChatGPT Word連携の実力できるこず・料金・導入手順

ChatGPT Word連携を䜿えば、Wordのサむドバヌで䞋曞き、芁玄、遞択範囲の修正、芋出し調敎たで完結したす。利甚条件、共有される䜿甚量、料金の考え方、デヌタ境界、導入手順を、提案曞やSOPの具䜓䟋ずずもに解説。コピペ埀埩を枛らし぀぀、事実や玄束を守るレビュヌ方法も玹介したす。2026幎9月18日Explained
Google Antigravity移行ガむド10月5日たでのロヌカルゞョブ察応

Google Antigravity移行ガむド10月5日たでのロヌカルゞョブ察応

Google Antigravityの5月版゚ヌゞェントは2026幎10月5日に停止予定です。出力のみのゞョブはID倉曎で枈みたすが、ロヌカルツヌルやfunction_callを扱う環境には、新しいツヌル名、PascalCase匕数、行範囲線集に察応するアダプタヌ改修が必芁です。安党な移行手順を解説したす。2026幎9月18日Explained
ニュヌスレタヌ

毎週日曜、䞀通の手玙。動くシステムの話。感想戊ではなく。

週刊。スパムなし。い぀でも解陀できたす。