/// <summary> /// Requests a remote endpoint for uploads from the PlaFab service. /// </summary> void GetContentUploadURL(AssetBundleHelperObject asset) { var request = new GetContentUploadUrlRequest(); if (asset.BundlePlatform == AssetBundleHelperObject.BundleTypes.Android) { request.Key = "Android/" + asset.ContentKey; // folder location & file name to use on the remote server } else if (asset.BundlePlatform == AssetBundleHelperObject.BundleTypes.iOS) { request.Key = "iOS/" + asset.ContentKey; } else // stand-alone { request.Key = asset.ContentKey; } request.ContentType = asset.MimeType; // mime type to match the file #if UNITY_WEBPLAYER //UnityEngine.Deubg.Log("Webplayer does not support uploading files."); #else PlayFabAdminAPI.GetContentUploadUrl(request, result => { asset.PutUrl = result.URL; byte[] fileContents = File.ReadAllBytes(asset.LocalPutPath); PutFile(asset, fileContents); }, OnPlayFabError); #endif }
public static bool UploadFileToCDN(string relativeFileName, byte[] content) { GetContentUploadUrlRequest request = new GetContentUploadUrlRequest(); request.ContentType = "binary/octet-stream"; request.Key = relativeFileName; var result = PlayFabAdminAPI.GetContentUploadUrlAsync(request).GetAwaiter().GetResult(); if (result.Error == null) { bool uploadResult = UploadFile(result.Result.URL, content); //HttpClient client = new HttpClient(); //ByteArrayContent data = new ByteArrayContent(content); //var response = client.PutAsync(result.Result.URL, data).GetAwaiter().GetResult(); if (uploadResult) { return(true); } else { Console.WriteLine("HTTP PUT ERROR" + " " + result.Result.URL); } } else { Console.WriteLine(result.Error.ErrorMessage); } return(false); }
private async Task <bool> UploadAsset(string key, string path) { var request = new GetContentUploadUrlRequest() { Key = key, ContentType = "application/x-gzip" }; LogToFile("\tFetching CDN endpoint for " + key); if (token.IsCancellationRequested) { return(true); } var getContentUploadTask = await PlayFabAdminAPI.GetContentUploadUrlAsync(request); //getContentUploadTask.Wait(); if (getContentUploadTask.Error != null) { OutputPlayFabError("\t\tAcquire CDN URL Error: ", getContentUploadTask.Error); return(false); } var destUrl = getContentUploadTask.Result.URL; LogToFile("\t\tAcquired CDN Address: " + key, ConsoleColor.Green); byte[] fileContents = File.ReadAllBytes(path); return(await PutFile(key, destUrl, fileContents)); }
/// <summary> /// Retrieves the pre-signed URL for uploading a content file. A subsequent HTTP PUT to the returned URL uploads the content. /// </summary> public static void GetContentUploadUrl(GetContentUploadUrlRequest request, Action <GetContentUploadUrlResult> resultCallback, Action <PlayFabError> errorCallback, object customData = null) { if (PlayFabSettings.DeveloperSecretKey == null) { throw new Exception("Must have PlayFabSettings.DeveloperSecretKey set to call this method"); } PlayFabHttp.MakeApiCall("/Admin/GetContentUploadUrl", request, AuthType.DevSecretKey, resultCallback, errorCallback, customData); }