Schnellstart: Content Delivery Network
Wichtig
PlayFab CDN ist ein Legacyfeature, das für Konten mit mindestens einem Titel unterstützt wird, der zuvor CDN konfiguriert hat. Für neue PlayFab-Entwickler, die an einer Inhaltsverwaltungslösung interessiert sind, empfehlen wir die Verwendung von Azure CDN. Informationen zu den ersten Schritten finden Sie in der Azure CDN-Dokumentation.
Das PlayFab Content Delivery Network (CDN) speichert einzelne Ressourcen als Dateien, die durch den Dateinamen eindeutig identifiziert werden (auch als Schlüssel bezeichnet). Dies bedeutet, dass Sie Ressourcen nach Schlüssel hinzufügen, aktualisieren, entfernen und abrufen.
PlayFab CDN ermöglicht das Trennen von Ressourcen nach Ordnern. Der Ordnerpfad zum Medienobjekt wird Teil des Ressourcenschlüssels.
Das folgende Beispiel ist ein gültiger Ressourcenschlüssel, der im Ordner mit dem Namen Android
gespeichert ist.
Android/Image.png
.
Wenn der Benutzer Ressourcen abruft, werden seine Anforderungen automatisch an den nächstgelegenen Edgespeicherort weitergeleitet, sodass der Inhalt mit der bestmöglichen Leistung bereitgestellt wird.
Dies kann jedoch zu Verzögerungen bei Dateiverwaltungsaktionen führen, wie sie in den folgenden Beispielen zu finden sind:
Dateiupload: Ihre Datei ist sofort verfügbar.
Dateiüberschreibung: Die alte Datei wird benutzern bis zu 24 Stunden lang angezeigt, bis sie mit der neuen Datei überschrieben wird.
Dateilöschung: Die Datei bleibt bis zu 24 Stunden bestehen, während der Befehl delete sie von allen Edgespeicherorten entfernt.
Hochladen von Ressourcen
Bevor Ihre Benutzer ein Medienobjekt abrufen können, muss es in das CDN hochgeladen werden. Dies kann im Game Manager erfolgen:
- Wählen Sie im Menü auf der linken Seite Inhalt aus.
- Wählen Sie die Registerkarte Dateiverwaltung aus.
- Wählen Sie dann Dateien hochladen aus.
Sie haben folgende Möglichkeiten:
- Wählen Sie mehrere Dateien (1) aus.
- Jede ausgewählte Datei wird in der Liste (2) angezeigt.
- Übermitteln Sie Ihre Dateien, indem Sie die Schaltfläche Dateien hochladen(3) auswählen.
Hochgeladene Dateien werden in der Liste (1) angezeigt.
Denken Sie daran, dass Sie auch Ordner verwalten können.
- Wählen Sie zum Erstellen eines Ordners die Schaltfläche Neuer Ordner(2) aus.
Geben Sie den Ordnernamen (1) ein.
Wählen Sie die Schaltfläche Ordner erstellen(2) aus.
Dadurch wird ein neuer Ordner in der Struktur erstellt. Sie können dann diesen Ordner auswählen und die Dateien normal hochladen.
Alternativ können Sie Ressourcen mithilfe des Admin SDK über Code hochladen. Dies ist ein zweistufiger Prozess:
- Rufen Sie zuerst GetContentUploadUrl auf, und rufen Sie die vorsignierte URL ab, die Ihren Upload autorisiert.
- Verwenden Sie dann die URL, um eine
HTTP PUT
Anforderung zu stellen, Ihre Daten und (optional) den Inhaltstyp anzugeben.
Erwägen Sie die Verwendung des unten angegebenen Ausschnitts, der zeigt, wie Sie eine vorab signierte URL abrufen.
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
}
Sie können das Ergebnis dann über den PlayFab-Spiel-Manager überprüfen. Stellen Sie sicher, dass die Datei in der Liste enthalten ist.
Abrufen von Ressourcen
Das Herunterladen des Medienobjekts über Code ist identisch mit dem Hochladen des Medienobjekts. Wie bereits erwähnt, handelt es sich um einen zweistufigen Prozess.
- Rufen Sie zunächst GetContentDownloadUrl auf, und rufen Sie eine vorsignierte URL ab, die Ihren Download autorisiert.
- Anschließend verwenden Sie die vorsignierte URL, um eine
HTTP GET
Anforderung zu stellen und die Daten abzurufen.
Erwägen Sie die Verwendung des unten angegebenen Ausschnitts, der die nackten Knochen des Prozesses zeigt.
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.
}
Wie bereits erwähnt, kann cdn latenz in Bezug auf Dateiupdates mit sich bringen. Während der Entwicklung ist es manchmal hilfreich, die neuesten, neuesten Dateien zu erzwingen.
Mit dem Aufruf GetContentDownloadUrl können Sie den ThruCDN
Parameter auf False
festlegen. Die zurückgegebene URL verweist auf nicht zwischengespeicherte neue Dateien.
Notiz
Ihr veröffentlichter Spielclient sollte diese Option niemals verwenden!