コンテンツ配信ネットワーク クイックスタート
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 段階の手順を実行します。
- まず、GetContentUploadUrl を呼び出し、アップロードが承認された事前署名済みの URL を取得します。
- 次に、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 段階の手順で処理されます。
- まず、GetContentDownloadUrl を呼び出し、ダウンロードが承認された事前署名済みの URL を取得します。
- その後、事前署名済み 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 が返されます。
注意
公開されたゲーム クライアントでは、このオプションを使用するべきではありません。