始めるセットアップ画像のパージ

アセットのパージ

Imgix上のアセットを削除または更新する必要がある場合は、キャッシュからパージできます。アセットをパージする一般的な理由は以下の通りです:

  1. 古いまたは不要なアセットがImgixソース経由で配信されている(例:DMCAに準拠して削除が必要)。
  2. ソース内のアセットを更新したいが、ファイル名の変更ができない。

ご注意ください: アップデートされたアセットの完全な準拠を確保するには、ファイル名を変更して新しいパスを与えるのが最も確実です。アセットのパージは必要な場合にのみ推奨されます。

以下のキャッシュはImgixシステムの外にあるため、パージでは削除されません:

  • お客様のソース(Amazon S3、Google Cloud Storageなど)
  • Imgix CDNに加えて使用しているサードパーティのCDN
  • エンドユーザーのブラウザキャッシュ
  • Imgixとエンドユーザー間のISPキャッシュ

そのため、エンドユーザーが古いアセットを見る可能性は依然としてあります。パージ操作に関して支援が必要な場合は、サポートまでご連絡ください。

パージリクエストの実行

パージは、アセット(例:https://assets.imgix.net/dogs.png)をImgixのキャッシュから削除します。これにより、すべての派生バージョン(例:https://assets.imgix.net/dogs.png?w=400など)もクリアされます。オリジンソース内の元画像は影響を受けません。

  1. パージリクエストの前に、オリジンからアセットを削除または置き換えてください。 検証処理はすべて、オリジン画像が変更されたことを前提としています。

  2. パラメータなしでアセットのベースパス(例:you.imgix.net/your-image.png)を使用してPurge APIを呼び出します。さまざまな方法については、以下のパージリクエストの方法をご参照ください。リクエストはすべての派生を一括でパージします。

    • APIは正常に受信された場合は200ステータスコードを返しますが、これは処理完了を意味しません。
  3. 再度アセットを取得して結果を確認します:

    • アセットを削除していた場合は、404エラーが返るはずです。
    • アセットを置き換えた場合は、更新されたバージョンが返されるはずです。

Imgix全体でのパージは通常迅速に完了しますが、完了までの時間を保証するものではないため、確認テストを強く推奨します。

パージが内部的にどのように機能するかについて詳しく知りたい方は、以下のImgixブログ記事をご覧ください:What Happens When You Purge an Asset

パージリクエストの方法

ダッシュボードからパージする

Imgixダッシュボードのツールビューを使用するのが、最も簡単なパージ方法です。Purge Single AssetセクションにアセットのImgix URLを貼り付け、Purgeボタンをクリックします。

Screenshot-Purging single asset from Dashboard

パージ前に、非ASCII文字をURLエンコードしてください。たとえば、ファイル名にスペースが含まれる場合は、%20に置き換えます(例:https://assets.imgix.net/image file.png → https://assets.imgix.net/image%20file.png)。

指定された正確なパスのみがパージされます。上記の例では https://assets.imgix.net/image%20file.png がパージされますが、https://assets.imgix.net/image+file.png はパージされません。

curlを使ってパージする

コマンドライン操作に慣れている場合、curlが最も迅速です。APIキーを作成または取得し、以下の例に挿入してください(キーにはPurge権限が必要です)。

POST /api/v1/purge HTTP/1.1
Host: api.imgix.com
Content-Type: application/vnd.api+json
Authorization: Bearer <api-key>
 
{
  "data": {
    "attributes": {
      "url": "<url-to-purge>",
      "source_id": "<source-id>"
    },
    "type": "purges"
  }
}

サブ画像のパージ

mark や blend として使用される画像(「サブ画像」とも呼ばれます)は、以下の方法でパージする必要があります:

  • sub-image: true 属性を含める
  • URL 属性にサブ画像をパラメータとして含める

リクエストの例:

POST /api/v1/purge HTTP/1.1
Host: api.imgix.com
Authorization: Bearer <api-key>
Content-Type: application/vnd.api+json
 
{
  "data": {
  "attributes": {
      "url": "<url-to-purge>?mark=<mark-image>&blend=<blend-image>",
      "sub_image": true,
      "source_id": "<source-id>"
    },
    "type": "purges"
  }
}

Purge API の詳細やその他の例については、Purge API ドキュメントをご覧ください。

トラブルシューティング

パージを実行した後、変更がすぐに反映されないことがあります。以下に一般的なトラブルシューティングのヒントを紹介します。

変更が反映されない

アセットのパージに成功したにもかかわらず、更新されたコンテンツが表示されない場合:

  • ブラウザキャッシュをクリアする:ブラウザは画像のキャッシュ版を保持していることがよくあります。キャッシュをクリアすると、最新バージョンのアセットが取得されます。
  • シークレット/プライベートタブを使用する:このモードではほとんどのキャッシュの仕組みが回避されるため、パージが成功したかどうかの確認に役立ちます。
  • 正しいアセット URL を確認する:確認している URL がパージした URL と完全に一致していることを確認してください。

Web Folder または Web Proxy ソースで画像の代わりに HTML が表示される

Web Folder または Web Proxy ソースからのアセットは、動作が異なります:

  • Imgix はオリジン URL から直接コンテンツを取得し、そのまま返します。
  • オリジンが HTML ページ(エラーページやディレクトリ一覧など)を返した場合でも、Imgix は 200 OK ステータスコードでそれを返します。
  • これは想定どおりの動作であり、通常はリクエストされたアセットが存在しないか、オリジンの設定が誤っていることを示しています。

この問題を解決するには、ファイルがオリジン URL に存在し、正しい画像の MIME タイプを返していることを確認してください。HTML レスポンスを返したくない場合は、代わりにエラーを返すのが最適です。

Imgix の前段に CDN がある場合のパージ

Imgix の前段にコンテンツデリバリーネットワーク(CDN)を使用している場合は、CDN と Imgix がそれぞれ独自のキャッシュレイヤーを持っていることを認識しておくことが重要です。このような構成では、上流の CDN が古いコンテンツを配信し続けている場合、Imgix のみをパージしても期待どおりの結果にならないことがあります。

完全かつ効果的にキャッシュを無効化するには、以下の順序でパージしてください:

  1. まず CDN のキャッシュをパージします。 この手順により、ユーザーに最も近いエッジロケーションからキャッシュされたアセットが削除されます。ほとんどの CDN は、特定の URL やパスパターンを無効化するための API または Web インターフェースを提供しています。

  2. 次に Imgix のキャッシュをパージします。 CDN をクリアした後、Purge API または Imgix ダッシュボードから Imgix のアセットをパージします。これにより、Imgix のインフラ内のキャッシュも更新されます。

CDN より先に Imgix をパージした場合:

  • CDN がエッジキャッシュから古いバージョンを配信し続ける可能性があります。
  • 更新されたコンテンツがすぐにユーザーに反映されず、混乱や表示の不一致を招きます。

この順序を守ることで、Imgix が更新されたアセットを取得した後、CDN が最新バージョンを受け取り、ネットワーク全体に配信できるようになります。

それでも問題が解決しない場合は、お気軽にサポートまでお問い合わせください。