My usecase: I want to upload a string to cloud, and download it again. My app is crossplatform web as well as PC, so I do NOT want to sync a local file, since on webGL, I have no local file access.
My code:
Code: Select all
public IEnumerator doTest()
{
cloud = new ES3Cloud(url, apiKey);
var myFile = new ES3File("MyFile.es3");
myFile.Save<string>("teststring", "testcontent");
yield return StartCoroutine(cloud.UploadFile(myFile));
if (cloud.isError)
{
Debug.LogError(cloud.error);
}
myFile.Save<string>("teststring", "testcontent2");
print("uploaded ");
yield return StartCoroutine(cloud.DownloadFile(myFile));
if (cloud.isError)
{
Debug.LogError(cloud.error);
}
string contentafterCloud = myFile.Load<string>("teststring");
print("after download " + contentafterCloud);
}
NullReferenceException: Object reference not set to an instance of an object
ES3.LoadRawBytes (.ES3Settings settings) (at Assets/Plugins/Easy Save 3/Scripts/ES3.cs:389)
ES3Cloud.UploadFile (System.Byte[] bytes, .ES3Settings settings, System.String user, System.String password) (at Assets/Plugins/Easy Save 3/Scripts/Web/ES3Cloud.cs:252)
ES3Cloud.UploadFile (.ES3File es3File) (at Assets/Plugins/Easy Save 3/Scripts/Web/ES3Cloud.cs:221)
CloudTest+<doTest>c__Iterator0.MoveNext () (at Assets/_Scripts/Cloud/CloudTest.cs:43)
UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Scripting/Coroutines.cs:17)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
CloudTest:Test() (at Assets/_Scripts/Cloud/CloudTest.cs:34)
UnityEngine.EventSystems.EventSystem:Update()
I suspect I'm doing something wrong. Am I trying to create a local filesystem file ?