Пример #1
0
        private static bool VerifyExistUpdates()
        {
            string gbackupFolder = ConfigurationManager.AppSettings["UpdatePathNameGDrive"];
            string jsonUpdate    = ConfigurationManager.AppSettings["jsonFileUpdate"];

            using (DriveService service = GoogleDrive.AbrirServico(credential))
            {
                string[] capdeUpdate = GoogleDrive.ProcurarArquivoId(service, gbackupFolder);

                if (capdeUpdate.Length == 0)
                {
                    GoogleDrive.CreateFolder(service, gbackupFolder);
                }

                string[] fileJsonUpdate = GoogleDrive.ProcurarArquivoId(service, jsonUpdate);
                if (fileJsonUpdate.Length != 0)
                {
                    string ss = Encoding.ASCII.GetString(GoogleDrive.DownloadFile(service, fileJsonUpdate[0]).ToArray());
                    serverVersion = JsonConvert.DeserializeObject <AppVersion>(ss);

                    if (Convert.ToDouble(thisAssemblyVersion.FileVersion.Replace(".", "")) < Convert.ToDouble(serverVersion.versao.Replace(".", "")))
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
Пример #2
0
        private void Work_DoWork(object sender, DoWorkEventArgs e)
        {
            string gbackupFolder = ConfigurationManager.AppSettings["UpdatePathNameGDrive"];

            using (DriveService service = GoogleDrive.AbrirServico(credential))
            {
                string[] capdeUpdate = GoogleDrive.ProcurarArquivoId(service, gbackupFolder);
                if (capdeUpdate.Length == 0)
                {
                    GoogleDrive.CreateFolder(service, gbackupFolder);
                }

                for (int i = 0; i < listDirectories.Count; i++)
                {
                    GoogleDrive.Upload(service, listDirectories[i], capdeUpdate[0]);
                    (sender as BackgroundWorker).ReportProgress(i);
                }
            }
        }
        public void UploadBackupFile(string fileName)
        {
            var googleDrive = new GoogleDrive(appConfigRepository.AppConfig.GoogleDrive);

            googleDrive.ValidateCredential();

            var parentFolderId = googleDrive.SearchFolder(appConfigRepository.AppConfig.GoogleDrive.FolderName);

            if (string.IsNullOrEmpty(parentFolderId))
            {
                parentFolderId = googleDrive.CreateFolder(appConfigRepository.AppConfig.GoogleDrive.FolderName);
            }

            var file = new GoogleDriveMetaDataModel();

            file.FileName       = System.IO.Path.GetFileName(fileName);
            file.ParentFolderId = parentFolderId;
            file.MimeType       = "application/octet-stream";
            googleDrive.UploadFile(file);
        }
Пример #4
0
        void Transfer(TransferItem item)
        {
#if DEBUG
            Console.WriteLine("Transfer items:" + item.From.node.GetFullPathString());
#endif
            int buffer_length = 32;                                                                                                                 //default
            int.TryParse(AppSetting.settings.GetSettingsAsString(SettingsKey.BufferSize), out buffer_length);                                       //get buffer_length from setting
            item.buffer = item.From.node.GetRoot.NodeType.Type == CloudType.Mega ? new byte[buffer_length * 2048] : new byte[buffer_length * 1024]; //create buffer

            ExplorerNode rootnodeto = item.To.node.GetRoot;

            item.byteread = 0;
            //this.group.items[x].UploadID = "";//resume
            item.SizeWasTransfer = item.OldTransfer = item.SaveSizeTransferSuccess; //resume
            item.ErrorMsg        = "";                                              //clear error
            item.TimeStamp       = CurrentMillis.Millis;
            if (GroupData.status != StatusTransfer.Running)
            {
                return;
            }
            switch (rootnodeto.NodeType.Type)
            {
            case CloudType.LocalDisk:
                #region LocalDisk
                ItemsTransferWork.Add(new TransferBytes(item, this));
                return;

                #endregion

            case CloudType.Dropbox:
                #region Dropbox
                int chunksizedb = 25;    //default 25Mb
                int.TryParse(AppSetting.settings.GetSettingsAsString(SettingsKey.Dropbox_ChunksSize), out chunksizedb);
                item.ChunkUploadSize = chunksizedb * 1024 * 1024;

                DropboxRequestAPIv2 DropboxClient = Dropbox.GetAPIv2(rootnodeto.NodeType.Email);

                if (string.IsNullOrEmpty(item.UploadID))    //create upload id
                {
                    item.byteread = item.From.stream.Read(item.buffer, 0, item.buffer.Length);
                    IDropbox_Request_UploadSessionAppend session = DropboxClient.upload_session_start(item.buffer, item.byteread);
                    item.UploadID         = session.session_id;
                    item.SizeWasTransfer += item.byteread;
                }
                ItemsTransferWork.Add(new TransferBytes(item, this, DropboxClient));
                return;

                #endregion

            case CloudType.GoogleDrive:
                #region GoogleDrive
                DriveAPIHttprequestv2 gdclient = GoogleDrive.GetAPIv2(rootnodeto.NodeType.Email);
                GoogleDrive.CreateFolder(item.To.node.Parent);
                int chunksizeGD = 5;    //default
                int.TryParse(AppSetting.settings.GetSettingsAsString(SettingsKey.GD_ChunksSize), out chunksizeGD);
                item.ChunkUploadSize = chunksizeGD * 1024 * 1024;

                if (string.IsNullOrEmpty(item.UploadID))    //create upload id
                {
                    if (string.IsNullOrEmpty(item.To.node.Parent.Info.ID))
                    {
                        throw new Exception("Can't get root id.");
                    }
                    string parentid = item.To.node.Parent.Info.ID;
                    string mimeType = Get_mimeType.Get_mimeType_From_FileExtension(item.To.node.GetExtension());
                    string jsondata = "{\"title\": \"" + item.From.node.Info.Name + "\", \"mimeType\": \"" + mimeType + "\", \"parents\": [{\"id\": \"" + parentid + "\"}]}";
                    item.UploadID = gdclient.Files.Insert_ResumableGetUploadID(jsondata, mimeType, item.From.node.Info.Size);
                }
                ItemsTransferWork.Add(new TransferBytes(item, this, gdclient));
                return;

                #endregion

            case CloudType.Mega:
                #region Mega
                MegaApiClient MegaClient = MegaNz.GetClient(rootnodeto.NodeType.Email);
                item.buffer = new byte[128 * 1024];
                if (string.IsNullOrEmpty(item.UploadID))                                                                                      //create upload id
                {
                    MegaNz.AutoCreateFolder(item.To.node.Parent);                                                                             //auto create folder
                    item.UploadID = MegaClient.RequestUrlUpload(item.From.node.Info.Size);                                                    //Make Upload url
                }
                item.From.stream = MegaApiClient.MakeEncryptStreamForUpload(item.From.stream, item.From.node.Info.Size, item.dataCryptoMega); //make encrypt stream from file
                ItemsTransferWork.Add(new TransferBytes(item, this, MegaClient));
                return;

                #endregion
            }
        }