Exemplo n.º 1
0
    /// <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
    }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        /// <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);
        }