Cloudinaryで画像アップロード機能を作る

公開日時

Next.jsアプリで画像アップロード機能を作る際にメディア管理SaaSのCloudinaryを使った。

Upload Widgetを使うと手軽に画像アップロードができる。

認証済みのユーザのみが画像アップロードできるようにしたかったので、Signed uploadsを参考に、認証済みユーザのみがアクセスできる署名APIを用意した。

Node.jsの場合、SDKを使うと署名処理は↓のように非常にシンプルに書ける。

import cloudinary from 'cloudinary'

export type SignatureParams = {
  [key: string]: string | number
}

export const generateSignature = (paramsToSign: SignatureParams): string => {
  const API_SECRET = process.env.CLOUDINARY_API_SECRET || ''
  const signature = cloudinary.v2.utils.api_sign_request(paramsToSign, API_SECRET)
  return signature
}

アップロード後の画像はAPI経由でも変換できるが、URLのパラメータを変更することで様々な加工ができる。

無料枠も多いので画像アップロード機能を手軽に作りたい場合はCloudinaryオススメ。


Related #js

AWS SESの受信メールを暗号化してs3に保存しLambdaで読み込む

jsの場合、複合処理を独自実装する必要がある

Next.jsのPreview Mode時はAnalyticsを無効化する

cookieの__next_preview_dataキーで判定

Next.js 11

手軽にアップグレードできた

VSCode Remoteで新規ファイルを作った際にTypescriptのPathが認識されない問題

「Ctrl + Shift + P」でコマンドパレットを開いて「Reload Window」を実行