Пример #1
0
        private void btnRevertSelected_Click(object sender, EventArgs e)
        {
            foreach (Object item in lstResults.SelectedItems)
            {
                RestoreFileItem file = (RestoreFileItem)item;
                Console.WriteLine("Starting restore of... " + file.current_name);

                // Do restore
                string fileCachePath = downloadPath + "\\cache\\" + file.fileId + ".bin";

                Google.Apis.Drive.v3.Data.File f = service.Files.Get(file.fileId).Execute();

                //Download Revision
                MemoryStream stream = new MemoryStream();
                RevisionsResource.GetRequest dlRevision = new RevisionsResource.GetRequest(service, file.fileId, file.previous_revisionId);
                dlRevision.Download(stream);
                //service.Files.Get(revision.Id).Download(stream);
                System.IO.File.WriteAllBytes(fileCachePath, stream.ToArray());

                //Replace revision
                //System.IO.FileStream fs = new FileStream(downloadPath + "\\download\\"+ revision.OriginalFilename, FileMode.Open);
                FilesResource.UpdateMediaUpload fUpload = service.Files.Update(f, file.fileId, stream, file.current_mimeType);
                f.Name         = file.previous_name;
                f.Id           = null;
                fUpload.Fields = "name";
                var uploadStatus = fUpload.Upload();

                if (uploadStatus.Exception != null)
                {
                    MessageBox.Show("Error Uploading File!");
                }
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            UserCredential credential;

            using (FileStream stream = new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
            {
                // The file token.json stores the user's access and refresh tokens, and is created
                // automatically when the authorization flow completes for the first time.
                string credPath = "token.json";
                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }

            // Create Drive API service.
            DriveService service = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });



            string sFileID   = "1R9wI7T2s7V5vz749x8KwyqQIGvJnpLpOkyzzjzjQeww";
            int    iPageSize = 1000;
            string sFields   = "*";

            FilesResource.GetRequest fFileReq = service.Files.Get(sFileID);
            fFileReq.Fields = "*";
            GFile gfResult = fFileReq.Execute();

            if (gfResult.Capabilities.CanReadRevisions == false)
            {
                gfResult.Capabilities.CanReadRevisions = true;
            }

            // 1_QfxWkF_NdvWPZALZONKzyzmHLkw71PkoCXfkFEtgqo - 1ATeam
            // 11W9OPD5ABoOa7ODHSmoWHxVCVNHyfWc14Qxk4gaeO5o - NotAdminLogins

            List <Revision> lAllrevisions = new List <Revision>();
            RevisionList    rlResult      = null;

            //var Result = GetRevisionsAsync(rlResult, service, sFileID, iPageSize, sFields, lAllrevisions);
            //rlResult = Result.Result.Item1;
            //lAllrevisions = Result.Result.Item2;
            var Result = GetRevisionsSync(rlResult, service, sFileID, iPageSize, sFields, lAllrevisions);

            rlResult      = Result.Item1;
            lAllrevisions = Result.Item2;

            Console.WriteLine("Revisions:\n");
            int iCounter = 0;

            if (lAllrevisions != null && lAllrevisions.Count > 0)
            {
                foreach (var rev in lAllrevisions)
                {
                    Console.WriteLine("{0} {1} {2} {3}", iCounter++, rev.Id, rev.ModifiedTime, rev.LastModifyingUser.DisplayName);
                }
            }
            Console.Read();

            Console.WriteLine("Paste Revision ID that You want to download: ");
            string sRevID = Console.ReadLine();

            RevisionsResource.GetRequest gRevisionReq = service.Revisions.Get(sFileID, sRevID);
            gRevisionReq.Alt = DriveBaseServiceRequest <Revision> .AltEnum.Json;
        }
Пример #3
0
        //ORIGINAL CODE FROM TESTING DO NOT EDIT
        private void consoleRun()
        {
            UserCredential credential;

            downloadPath = System.Environment.CurrentDirectory;

            using (var stream =
                       new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
            {
                string credPath = System.Environment.CurrentDirectory;
                credPath = Path.Combine(credPath, ".credentials/drive-dotnet-quickstart.json");

                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }

            // Create Drive API service.
            var service = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            // Define parameters of request.
            FilesResource.ListRequest listRequest = service.Files.List();
            listRequest.PageSize = 100;
            listRequest.Fields   = "nextPageToken, files(id, name, modifiedTime, mimeType)";

            // List files.
            IList <Google.Apis.Drive.v3.Data.File> files = listRequest.Execute()
                                                           .Files;

            Console.WriteLine("Files:");
            if (files != null && files.Count > 0)
            {
                foreach (var file in files)
                {
                    if (file.Name != "Sample document RANSOM.txt")
                    {
                        continue;
                    }
                    Console.WriteLine("{0} - {1} ({2})", file.ModifiedTime, file.Name, file.Id);
                    RevisionsResource.ListRequest revisionListRequest = service.Revisions.List(file.Id);
                    revisionListRequest.PageSize = 100;
                    revisionListRequest.Fields   = "kind, revisions(id, modifiedTime, originalFilename, md5Checksum)";

                    IList <Google.Apis.Drive.v3.Data.Revision> revisions = revisionListRequest.Execute().Revisions;
                    if (revisions != null && revisions.Count > 0)
                    {
                        foreach (var revision in revisions)
                        {
                            Console.WriteLine("{0} - {1} ({2})", revision.ModifiedTime, revision.OriginalFilename, revision.Id);

                            //Replace original file
                            //Rename
                            Google.Apis.Drive.v3.Data.File f = service.Files.Get(file.Id).Execute();

                            /*FilesResource.UpdateRequest fUpdate = new FilesResource.UpdateRequest(service, f, file.Id);
                             * fUpdate.*/

                            //Download Revision
                            MemoryStream stream = new MemoryStream();
                            RevisionsResource.GetRequest dlRevision = new RevisionsResource.GetRequest(service, file.Id, revision.Id);
                            dlRevision.Download(stream);
                            //service.Files.Get(revision.Id).Download(stream);

                            //Replace revision
                            //System.IO.FileStream fs = new FileStream(downloadPath + "\\download\\"+ revision.OriginalFilename, FileMode.Open);
                            FilesResource.UpdateMediaUpload fUpload = service.Files.Update(f, file.Id, stream, f.MimeType);
                            f.Name         = revision.OriginalFilename;
                            f.Id           = null;
                            fUpload.Fields = "name";
                            var uploadStatus = fUpload.Upload();

                            //Console.WriteLine(fUpload.ResponseBody.ToString());

                            //fs.Close();
                            break;

                            //Download Revision

                            /*System.IO.FileStream fs = new FileStream(downloadPath + "\\download\\"+ revision.OriginalFilename, FileMode.Create);
                             * RevisionsResource.GetRequest dlRevision = new RevisionsResource.GetRequest(service, file.Id, revision.Id);
                             * dlRevision.Download(fs);
                             * service.Files.Get(revision.Id).Download(fs);
                             * fs.Flush();
                             * fs.Close();
                             * break;*/
                        }
                    }
                }
            }
            else
            {
                Console.WriteLine("No files found.");
            }
            Console.Read();
        }