Example #1
0
        private void UploadToGoogleDrive(string fileName)
        {
            if (Application.internetReachability == NetworkReachability.NotReachable)
            {
                return;
            }

#if !UNITY_EDITOR
            if (_sw != null)
            {
                _sw.Close();
                _sw = null;
            }

            var          loadPath = _setting.localPath + fileName;
            StreamReader sr       = new StreamReader(loadPath);
            var          file     = new UnityGoogleDrive.Data.File()
            {
                Name = fileName, Content = System.Text.Encoding.UTF8.GetBytes(sr.ReadToEnd())
            };
            sr.Close();
            UnityGoogleDrive.GoogleDriveFiles.List().Send().OnDone += fileList =>
            {
                var f = fileList.Files.FirstOrDefault(_ => _.Name == fileName);

                if (f == null)
                {
                    file.Parents = new List <string>()
                    {
                        _setting.drivePath
                    };
                    // nothing
                    UnityGoogleDrive.GoogleDriveFiles.Create(file).Send().OnDone += (_) =>
                    {
                        Debug.Log("upload create done");
                    };
                }
                else
                {
                    // overwrite
                    UnityGoogleDrive.GoogleDriveFiles.Update(f.Id, file).Send().OnDone += (_) =>
                    {
                        Debug.Log("upload update done");
                    };
                }
            };
            Init();
#endif
        }
Example #2
0
        private async UniTask <byte[]> ExportFileAsync(UnityGoogleDrive.Data.File fileMeta)
        {
            Debug.Assert(converter is IGoogleDriveConverter <TResource>);

            var gDriveConverter = converter as IGoogleDriveConverter <TResource>;

            downloadRequest = new GoogleDriveFiles.ExportRequest(fileMeta.Id, gDriveConverter?.ExportMimeType);
            await downloadRequest.SendNonGeneric();

            if (downloadRequest.IsError || downloadRequest.GetResponseData <UnityGoogleDrive.Data.File>().Content == null)
            {
                throw new Exception($"Failed to export '{Path}' resource from Google Drive.");
            }
            return(downloadRequest.GetResponseData <UnityGoogleDrive.Data.File>().Content);
        }
        private async UniTask <byte[]> DownloadFileAsync(UnityGoogleDrive.Data.File fileMeta)
        {
            if (useNativeRequests)
            {
                if (typeof(TResource) == typeof(AudioClip))
                {
                    downloadRequest = GoogleDriveFiles.DownloadAudio(fileMeta.Id, WebUtils.EvaluateAudioTypeFromMime(fileMeta.MimeType));
                }
                else if (typeof(TResource) == typeof(Texture2D))
                {
                    downloadRequest = GoogleDriveFiles.DownloadTexture(fileMeta.Id, true);
                }
            }
            else
            {
                downloadRequest = new GoogleDriveFiles.DownloadRequest(fileMeta);
            }

            await downloadRequest.SendNonGeneric();

            if (downloadRequest.IsError || downloadRequest.GetResponseData <UnityGoogleDrive.Data.File>().Content == null)
            {
                Debug.LogError($"Failed to download {Path}{usedRepresentation.Extension} resource from Google Drive.");
                return(null);
            }

            if (useNativeRequests)
            {
                if (typeof(TResource) == typeof(AudioClip))
                {
                    loadedObject = downloadRequest.GetResponseData <UnityGoogleDrive.Data.AudioFile>().AudioClip as TResource;
                }
                else if (typeof(TResource) == typeof(Texture2D))
                {
                    loadedObject = downloadRequest.GetResponseData <UnityGoogleDrive.Data.TextureFile>().Texture as TResource;
                }
            }

            return(downloadRequest.GetResponseData <UnityGoogleDrive.Data.File>().Content);
        }