コンテンツ配信ネットワーク クイックスタート

Important

PlayFab CDN は、以前に CDN を構成した少なくとも 1 つのタイトルを持つアカウントでサポートされているレガシ機能です。 コンテンツ管理ソリューションに関心がある新しい PlayFab 開発者の場合は、Azure CDN を使用することをお勧めします。 作業を開始するには、 Azure CDN のドキュメントを参照してください。

PlayFab のコンテンツ配信ネットワーク (CDN) には、個々の資産が、ファイル名 (キーとも呼ばれます) によって一意に識別されたファイルとして格納されています。 これは、キーを使用して資産を追加、更新、削除、取得することを意味します。

PlayFab CDN を使用すると、フォルダごとに資産を分けられます。 資産へのフォルダー パスは、資産キーの一部になります。

次の例では、有効な資産キーがAndroidという名前のフォルダー内に格納されています。

Android/Image.png.

ユーザーが資産を取得するときに、要求が自動的に最も近いエッジ ロケーションにルーティングされるため、コンテンツが最高のパフォーマンスになるよう配信されます。

ただし、これでは、次の例で見られるように、ファイル管理操作で遅れが発生します。

  • ファイルのアップロード: ファイルはすぐに使用可能になります。

  • ファイルの上書き: 新しいファイルでの上書きには最長 24 時間かかります。それまでの間は、以前のファイルがユーザーに対して表示されます。

  • ファイルの削除: 削除コマンドによってすべてのエッジ ロケーションからファイルが削除されるまでには最長 24 時間かかります。それまでの間、ファイルは存在し続けます。

資産のアップロード

ユーザが資産を取得する前に、CDN にアップロードされている必要があります。 こちらは、ゲーム マネージャーで行うことができます。

  • 左側のメニューの [コンテンツ] を選択します。
  • [ファイル管理] タブを選択します。
  • [ファイルのアップロード] ボタンを選択します。

ゲーム マネージャー - コンテンツ - ファイルの管理 - ファイルのアップロード

次のことができます。

  • 複数の ファイル (1) を選択します。
  • 選択したすべてのファイルが一覧 (2) に表示されます。
  • [ファイルのアップロード] ボタン (3) を選択して、ファイルを送信します。

ゲーム マネージャー - ファイルの選択とアップロード

  • アップロードされたファイルが一覧 (1) に表示されます。

  • ここではフォルダーを管理することもできます。

    • フォルダを作成するには、[新しいフォルダ] ボタン (2) を選択します。
  • フォルダー名 (1) を入力します。

  • [フォルダーの作成] ボタン (2) を選択します。

ゲーム マネージャー - 新しいフォルダの作成

これにより、ツリー内に新しいフォルダーが作成されます。 作成後は、フォルダーを選択して通常どおりにファイルをアップロードすることができます。

また、管理 SDK を使用するコードによってアセットをアップロードすることもできます。 これには次の 2 段階の手順を実行します。

  1. まず、GetContentUploadUrl を呼び出し、アップロードが承認された事前署名済みの URL を取得します。
  2. 次に、URL を使用して HTTP PUT 要求を作成し、データを提供します。また、(必要に応じて) コンテンツ タイプを指定します。

下のスニペットは、事前署名済み URL を取得する方法を示しています。この方法の使用を検討してください。

public void UploadFileToCDN(string key, byte[] content, string contentType = "binary/octet-stream") {
    GetUploadUrl(key, contentType, presignedUrl => {
        PutFile(presignedUrl, content, contentType);
    });
}

void GetUploadUrl(string key, string contentType, Action<string> onComplete) {
    PlayFabAdminAPI.GetContentUploadUrl(new GetContentUploadUrlRequest() {
        ContentType = contentType,
        Key = key
    }, result => onComplete(result.URL),
    error => Debug.LogError(error.GenerateErrorReport()));
}

void PutFile(string presignedUrl, byte[] content, string contentType = "binary/octet-stream") {
    // Implement your own PUT HTTP request here.
    // - Must use PUT method
    // - Must set content type Header
}

結果は PlayFab のゲーム マネージャーで確認できます。 そのファイルがそのリストにあることを確認します。

資産の取得

コードを利用して資産をダウンロードする方法は、資産のアップロードと同じです。 既に説明したとおり、これは 2 段階の手順で処理されます。

  1. まず、GetContentDownloadUrl を呼び出し、ダウンロードが承認された事前署名済みの URL を取得します。
  2. その後、事前署名済み URL を使用して HTTP GET 要求を送信し、データを取得します。

スニペットを使用して、次に示すプロセスのベア ボーンを検討します。

public void DownloadFileFromCDN(string key) {
    GetDownloadUrl(key, presignedUrl =>
    {
        GetFile(presignedUrl);
    });
}

void GetDownloadUrl(string key, Action<string> onComplete) {
    PlayFabClientAPI.GetContentDownloadUrl(new GetContentDownloadUrlRequest() {
        Key = key,
        ThruCDN = true
    }, result => onComplete(result.URL),
    error => Debug.LogError(error.GenerateErrorReport()));
}

void GetFile(string preauthorizedUrl) {
    // Implement your own GET HTTP request here.
}

既に説明したとおり、CDN でのファイル更新には待機時間が発生する場合があります。 開発時には、最新のファイルを強制的に取得できると便利な場合があります。

GetContentDownloadUrl を呼び出すと、ThruCDN パラメーターを False に設定できます。 その場合、キャッシュされていない新しいファイルを指す URL が返されます。

注意

公開されたゲーム クライアントでは、このオプションを使用するべきではありません