Direct Upload を使うと、ビルド済みアセットを Pages にアップロードし、Cloudflare のグローバルネットワークへデプロイできます。独自のビルド基盤を連携 したい場合や、手元のコンピューターからアップロードしたい場合は、Git 連携より Direct Upload を選んでください。
このガイドでは、Wrangler またはドラッグアンドドロップでアセットをアップロードする手順を説明します。
Direct Upload でプロジェクトをデプロイする前に、適切な ビルドコマンド を実行してプロジェクトをビルドします。
ビルド済みアセットの準備ができたら、次の 2 通りでアップロードを開始できます。
Direct Upload の各方法で対応しているファイル種別は次のとおりです。
- Wrangler: アセットのフォルダー 1 つ。(Zip ファイルは非対応です。)
- ドラッグアンドドロップ: Zip ファイル、またはアセットのフォルダー 1 つ。
まず npm ↗ をインストールします。次に Developer Platform CLI の Wrangler をインストール します。
wrangler login コマンド で Wrangler にログインします。次に pages project create コマンド を実行します。
npx wrangler pages project createプロジェクト名の指定を求められます。プロジェクトは <PROJECT_NAME>.pages.dev で配信されます(名前が既に使われている場合は、プロジェクト名にランダムな文字が付きます)。本番ブランチの指定も求められます。
以降のデプロイでは、これらの値を再利用します(node_modules/.cache/wrangler フォルダーに保存されます)。
ここまでで空のプロジェクトができています。本番環境の初回デプロイと、以降のすべてのデプロイでアセットをデプロイできます。次の wrangler pages deploy コマンドを実行します。
npx wrangler pages deploy <BUILD_OUTPUT_DIRECTORY>プロジェクトに合うビルド出力ディレクトリは、Framework presets の Build directory で確認できます。
本番デプロイは <PROJECT_NAME>.pages.dev で利用できます。
プレビュー環境へアセットをデプロイするには、次を実行します。
npx wrangler pages deploy <OUTPUT_DIRECTORY> --branch=<BRANCH_NAME>作成したブランチごとに、<BRANCH_NAME>.<PROJECT_NAME>.pages.dev でブランチエイリアスが使えます。
プロジェクト作成とアセットデプロイをまとめて行うには、deploy コマンドで作成とデプロイを同時に実行できます。このコマンドを先に実行した場合も、プロジェクト名と本番ブランチの指定を求められます。これらの値は、上記のとおり以降のデプロイ向けにキャッシュされます。キャッシュが既にあり、新しいプロジェクトを作成したい場合は create コマンド を実行する必要があります。
Wrangler で Direct Upload 向けの利用可能なプロジェクト一覧を取得するには、pages project list を使います。
npx wrangler pages project listプログラムやスクリプト向けに JSON で出力するには、--json フラグを使います。
npx wrangler pages project list --jsonWrangler で特定プロジェクトの一意なプレビュー URL 一覧を取得するには、pages deployment list を使います。
npx wrangler pages deployment listWrangler と GitHub Actions、Circle CI、Travis CI などの継続的インテグレーションツールを組み合わせて継続的デプロイする手順は、Direct Upload を継続的インテグレーションと一緒に使う を参照してください。
ドラッグアンドドロップでデプロイする手順は次のとおりです。
-
Cloudflare ダッシュボードで Workers & Pages ページを開きます。
Workers & Pages を開く ↗ -
Create application > Get started > Drag and drop your files を選びます。
-
指定の欄にプロジェクト名を入力し、アセットをドラッグアンドドロップします。
-
Deploy site を選びます。
プロジェクトは <PROJECT_NAME>.pages.dev から配信されます。次に、ビルド出力ディレクトリをアップロード枠へドラッグアンドドロップします。ファイルのアップロードが完了したら Save and Deploy を選び、新しくデプロイしたプロジェクトへ進みます。
プロジェクトを作成したあと、Create a new deployment を選ぶとサイトの新しいバージョンを開始できます。次に、新しいデプロイを本番環境とプレビュー環境のどちらにするかを選びます。プレビューを選ぶ場合は、新しいデプロイブランチを作成するか、既存のブランチを入力できます。
| アップロード方法 | ファイル数の上限 | ファイルサイズ |
|---|---|---|
| Wrangler | 20,000 ファイル | 25 MiB |
| ドラッグアンドドロップ | 1,000 ファイル | 25 MiB |
ドラッグアンドドロップを使う場合、アセットが大きすぎてアップロードに失敗すると、赤い警告記号が付きます。この場合、そのアセットを削除することはできますが、置き換えることはできません。置き換えるには、プロジェクト全体を再アップロードする必要があります。
プロジェクトが Direct Upload プロジェクトの場合、本番ブランチの制御を設定するオプションはありません。本番ブランチを更新するには、API の Update Project エンドポイントを手動で呼び出します。
curl --request PATCH \
"https://api.cloudflare.com/client/v4/accounts/{account_id}/pages/projects/{project_name}" \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data "{\"production_branch\": \"main\"}"Cloudflare ダッシュボードからのドラッグアンドドロップデプロイは、現在 Pages Functions の functions フォルダーのコンパイルに対応していません。functions フォルダーをデプロイするには、Wrangler を使う必要があります。Wrangler でプロジェクトをデプロイするとき、コマンドを実行した場所に functions フォルダーがあると、その functions フォルダーもプロジェクトと一緒にアップロードされます。
一方、_worker.js ファイルは Wrangler と、ダッシュボードからのドラッグアンドドロップデプロイの両方で使えます。