cloudinary-upload について
cloudinary-upload は、公式の `cld` CLI を使って Cloudinary にファイルをアップロードするスクリプトです。個別ファイルと階層を保たないディレクトリのアップロードに対応し、画像は既定で WebP に変換し、ほかのファイルはそのまま扱います。
主な機能
- 01`cld` によるファイルのアップロード
- 02ディレクトリを単一フォルダーへアップロード
- 03画像を既定で WebP に変換
- 04画像の元形式を保持可能
- 05同じ public_id のアセットを上書き
活用シーン
- 01画像を Cloudinary のフォルダーへアップロード
- 02ブログ画像のディレクトリをアップロード
- 03元の形式を保ってアップロード
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mnhkahn/ cyeam-cli --skill cloudinary-uploadインストール後、Claude Code で/cloudinary-uploadを入力して読み込まれたか確認します。
同梱ファイルscripts/upload-dir.shscripts/upload.sh
詳細
Cloudinary アップロード(公式 CLI)
公式 Cloudinary CLI(cld)を使用して、/admin/upload の処理(controllers/admin_controller.go と util/file_util.go を参照)を再現します。画像は保存時に webp に変換され、指定したフォルダーにアップロードされます(フラット形式で、フォルダー構造は保持されません)。
前提条件
- 公式 CLI(
cld)がインストールされていない場合、初回使用時に自動でインストールされます(pip3 install --user cloudinary-cliを使用)。 - 認証情報には
CLOUDINARY_URLを使用します(シークレットをハードコードしないでください)。
このプロジェクトのクラウド名はexport CLOUDINARY_URL=cloudinary://<api_key>:<api_secret>@<cloud_name>cyeamです。キー/シークレットはcontrollers/admin_controller.go内の定数から取得するか、ユーザーに確認し、実行前に上記の URL をエクスポートしてください。cld configで確認してください(cyeam クラウドが表示されます)。
単一/複数ファイルのアップロード
bash .agents/skills/cloudinary-upload/scripts/upload.sh -f uploads file1.png file2.jpg
-f FOLDER— Cloudinary のアップロード先アセットフォルダー(デフォルト:uploads)-r— 元の形式を保持します(webp 変換をスキップします)
各ファイルは、拡張子を除いたファイル名を public_id としてアップロードされ、overwrite=True が設定されます(既存のバックエンドと同じです)。画像には format=webp が適用され、画像以外のファイルはそのままアップロードされます。
ディレクトリのアップロード(フラット形式)
bash .agents/skills/cloudinary-upload/scripts/upload-dir.sh -f blog-images ./my-images
ディレクトリ内の最上位にあるすべてのファイルを、1 つのアップロード先フォルダーにアップロードします。プロジェクトの方針により、フォルダー構造は保持されません。webp 変換をスキップするには -r を追加してください。
スクリプトの動作
| 動作 | 方法 |
|---|---|
| webp 変換 | 画像に format=webp アップロードパラメーターを指定 |
| アップロード先フォルダー | folder=<FOLDER> |
| 上書き | overwrite=True(既存の /admin/upload と同じ) |
| public_id | 拡張子を除いたファイル名 |
| 画像以外のファイル | 変更せずにアップロード |
内部で実行されるコマンドは次のとおりです。
cld uploader upload <path> public_id=<name> asset_folder=<folder> overwrite=True format=webp
よくある間違い
CLOUDINARY_URLが設定されていない → スクリプトはエラーで終了します。先にエクスポートしてください。- ディレクトリ構造を保持する → 代わりに
cld upload_dir <dir> -f <folder>を直接使用してください。これらのスクリプトは意図的にフラット化します。 - 画像以外を変換する → webp 変換は画像の拡張子にのみ適用されます。それ以外のファイルは変更せずにアップロードされます。
コメント
Markdown 対応