public static bool UploadToMegaCloud(CloudDrive value, string file, out string message)
        {
            MegaApiClient client = new MegaApiClient();

            try
            {
                client.Login(value.Uid, value.Password);
                var   nodes  = client.GetNodes();
                INode root   = nodes.Single(n => n.Type == NodeType.Root);
                INode myFile = client.UploadFile(file, root);

                Uri downloadUrl = client.GetDownloadLink(myFile);
                client.Logout();
                message = downloadUrl.ToString();
                return(true);
            }
            catch (Exception e)
            {
                message = e.Message;
                return(false);
            }

            //var nodes = client.GetNodes();

            //INode root = nodes.Single(n => n.Type == NodeType.Root);
            //INode myFolder = client.CreateFolder("Upload", root);

            //INode myFile = client.UploadFile("MyFile.ext", myFolder);

            //Uri downloadUrl = client.GetDownloadLink(myFile);
            //Console.WriteLine(downloadUrl);
        }
示例#2
0
        protected int SaveToFileHosting(string[] files, int id, string folderPathConst)
        {
            // open mega.nz connection
            MegaApiClient client       = new MegaApiClient();
            string        megaUsername = _configuration[Shared.Constants.UsernameConfigPath];
            string        megaPassword = _configuration[Shared.Constants.PasswordConfigPath];

            client.Login(megaUsername, megaPassword);

            foreach (var file in files)
            {
                if (file.Length > 0)
                {
                    // prepare string
                    var splitString      = file.Split("||");
                    var fileBase64String = splitString.First();

                    // prepare file
                    var bytes = Convert.FromBase64String(fileBase64String);
                    using MemoryStream stream = new MemoryStream();
                    stream.Write(bytes, 0, bytes.Length);
                    stream.Seek(0, SeekOrigin.Begin);

                    // determine file name
                    var fileName = splitString.Length > 2 ? splitString[1] : Guid.NewGuid().ToString();

                    // save file to mega.nz
                    var folderPath            = $"{folderPathConst}{id}";
                    IEnumerable <INode> nodes = client.GetNodes();
                    INode cloudFolder         =
                        nodes.SingleOrDefault(x => x.Type == NodeType.Directory && x.Name == folderPath);

                    if (cloudFolder == null)
                    {
                        INode root = nodes.Single(x => x.Type == NodeType.Root);
                        cloudFolder = client.CreateFolder(folderPath, root);
                    }

                    var   extension    = splitString.Last();
                    INode cloudFile    = client.Upload(stream, $"{fileName}.{extension}", cloudFolder);
                    Uri   downloadLink = client.GetDownloadLink(cloudFile);

                    // prepare entity
                    var entity = new Attachment
                    {
                        Name          = fileName,
                        Url           = downloadLink.AbsoluteUri,
                        ExtensionType = extension
                    };
                    // DetermineEntityNavigation(entity, folderPathConst, id);

                    _dbContext.Add(entity);
                }
            }

            // close mega.nz connection
            client.Logout();

            return(_dbContext.SaveChanges());
        }
示例#3
0
            public void ConnectToDrive(object o)
            {
                lock (workerLocker)
                {
                    try
                    {
                        MegaApiClient client = new MegaApiClient();

                        client.Login(ConfigurationManager.AppSettings["UserName"],
                                     ConfigurationManager.AppSettings["Password"]);
                        var nodes = client.GetNodes();

                        INode root     = nodes.Single(n => n.Type == NodeType.Root);
                        INode myFolder = client.CreateFolder("Upload " + DateTime.Today, root);

                        string source    = ConfigurationManager.AppSettings["Source"];
                        string typeFiles = ConfigurationManager.AppSettings["TypeFile"];

                        var files = Directory.GetFiles(source, "*." + typeFiles, SearchOption.TopDirectoryOnly);
                        var file  = files.OrderByDescending(File.GetLastWriteTime).First();
                        /*  var filterFiles = files.Where((n) => File.GetCreationTime(n).ToShortDateString() == date);*/


                        using (var stream = new ProgressionStream(new FileStream(file, FileMode.Open), PrintProgression)
                               )
                        {
                            INode myFile = client.Upload(stream, Path.GetFileName(file), myFolder);
                            client.GetDownloadLink(myFile);
                        }
                    }
                    catch (Exception ex)
                    {
                        var path = Path.Combine(Environment.CurrentDirectory, "log.txt");
                        //if (!File.Exists(path))
                        //{
                        //    File.Create(path);
                        //}
                        using (FileStream fs = new FileStream(path, FileMode.Append))
                        {
                            using (StreamWriter sw = new StreamWriter(fs))
                            {
                                sw.WriteLine("=========MEGA=============" + Environment.NewLine);
                                sw.WriteLine("-----" + DateTime.Now.ToShortDateString() + "-----" + Environment.NewLine);
                                sw.WriteLine(ex.Message);
                            }
                        };
                    }
                    finally
                    {
                        run = 0;
                        Monitor.Pulse(workerLocker);
                    }
                }
            }
示例#4
0
        public void mega()
        {
            progress_qr_code_upload();

            string qr_path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\\qr";
            string qr_dest = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\codes.zip";


            using (ZipFile zip = new ZipFile(System.Text.Encoding.Default))
            {
                foreach (var file in System.IO.Directory.GetFiles(qr_path))
                {
                    zip.AddFile(file);
                }

                zip.Save(qr_dest);
            }

            try {
                var client = new MegaApiClient();

                string zip_location = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\\codes.zip";

                client.Login("ADD_MEGA_USERNAME_HERE", "PASSWORD_HERE");

                IEnumerable <INode> nodes = client.GetNodes();

                INode root     = nodes.Single(x => x.Type == NodeType.Root);
                INode myFolder = client.CreateFolder("QR-Codes", root);

                INode myFile       = client.UploadFile(zip_location, myFolder);
                Uri   downloadLink = client.GetDownloadLink(myFile);
                Console.WriteLine(downloadLink);
                string download = downloadLink.ToString();
                MessageBox.Show(download + "" + "Preview QR-Codes and save", "Copied to Clipboard", MessageBoxButtons.YesNo);
                if (MessageBox.Show("Do you really want to preview QR-codes?", "Preview", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    Form2 qrcode_preview = new Form2();
                    qrcode_preview.ShowDialog();
                }
                Clipboard.SetText(download);

                client.Logout();

                MessageBox.Show("all done. qr-code location:" + zip_location);
            }
            catch (Exception error)
            {
                MessageBox.Show("Error uploading QR-Codes to mega" + error);
                return;
            }
        }
示例#5
0
        private void Upt_Tick(object sender, EventArgs e)
        {
            if (td.IsCompleted)
            {
                INode m            = td.Result;
                Uri   downloadLink = client.GetDownloadLink(m);
                Clipboard.SetText(downloadLink.ToString());
                Console.WriteLine(downloadLink.ToString());
                System.Diagnostics.Process.Start(downloadLink.ToString());
                MessageBox.Show("Upload Complete!\n" + downloadLink.ToString() + "\nCopied to Clipboard!", "Finished!", MessageBoxButton.OK, MessageBoxImage.Information);

                client.Logout();
                Upt.Stop();
            }
        }
示例#6
0
        private void subirArchivoAMega()
        {
            try
            {
                string Fecha = DateTime.Now.ToString("yyy-MM-dd");
                lblInfo.Invoke(new MethodInvoker(delegate { lblInfo.Text = "Conectando..."; }));
                progressBar1.Invoke(new MethodInvoker(delegate { progressBar1.PerformStep(); }));
                MegaApiClient cliente = new MegaApiClient();
                cliente.Login("*****@*****.**", "corajitos12");
                progressBar1.Invoke(new MethodInvoker(delegate { progressBar1.PerformStep(); }));
                lblInfo.Invoke(new MethodInvoker(delegate { lblInfo.Text = "Obteniendo directorios..."; }));
                var nodos = cliente.GetNodes();
                lblInfo.Invoke(new MethodInvoker(delegate { lblInfo.Text = "Buscando carpeta 'Backup'..."; }));
                bool existe = cliente.GetNodes().Any(n => n.Name == "Backup " + Fecha);

                INode root;
                INode carpeta;


                if (existe == true)
                {
                    lblInfo.Invoke(new MethodInvoker(delegate { lblInfo.Text = "Obteniendo la carpeta 'Backup'...."; }));

                    progressBar1.Invoke(new MethodInvoker(delegate { progressBar1.PerformStep(); }));
                    carpeta = nodos.Single(n => n.Name == "Backup " + Fecha);
                }
                else
                {
                    lblInfo.Invoke(new MethodInvoker(delegate { lblInfo.Text = "Creando carpeta 'Backup'..."; }));
                    progressBar1.Invoke(new MethodInvoker(delegate { progressBar1.PerformStep(); }));
                    root = nodos.Single(n => n.Type == NodeType.Root);

                    carpeta = cliente.CreateFolder("Backup " + Fecha, root);
                }


                progressBar1.Invoke(new MethodInvoker(delegate { progressBar1.PerformStep(); }));

                lblInfo.Invoke(new MethodInvoker(delegate { lblInfo.Text = "Subiendo archivo..."; }));

                progressBar1.Invoke(new MethodInvoker(delegate { progressBar1.PerformStep(); }));

                INode archivo = cliente.UploadFile(@"C:\Database Tec34\DatabaseEscTec.db", carpeta);


                Uri downloadUrl = cliente.GetDownloadLink(archivo);

                lblInfo.Invoke(new MethodInvoker(delegate { lblInfo.Text = "Archivo subido con éxito."; }));
            }
            catch (Exception error)
            {
                t.Abort();

                MessageBox.Show("Error al intentar subir el archivo. " + error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }


            this.Invoke((MethodInvoker) delegate
            {
                this.Close();
            });
        }