Выгрузка архивных копий файлов на облако mail

Администрирование - Сервисные утилиты

облако mail архивы web dav

4
Выгрузка архивных копий файлов на облако mail. (webdav, c#). Данная статья может быть полезной администраторам, программистам, чьи копии баз хранятся в облаке мейл.

Штатная выгрузка работает в обе стороны, в случае если шифровальщик зашифрует данные либо будут ошибочно удалены, они обновятся на облаке.

mail ru сделал крутое api, программист Erast Korolev сделал отличную реализацию работы с mail облаком https://github.com/erastmorgan/Mail.Ru-.net-cloud-client

Слегка доработаем, и получим утилиту для выгрузки данных на облако мейл, с последующим удалением по истечению 45 дней из облака мейл

 

using System;
using MailRuCloudApi;
using System.IO;
using System.ComponentModel;

namespace ConsoleApplication1
{
    class Program
    {
        static private Account account;

        static void Main(string[] args)
        {
            Console.WriteLine(args.Length.ToString());

            if (args.Length != 4)
            {
                return;
            }

            var fileName = args[0];
            var destinationPath = args[1];
            var login = args[2];
            var password = args[3];

            account  = new Account(login, password);

            var api = new MailRuCloud() { Account = account };

            //var percent = 0;
            api.ChangingProgressEvent += delegate (object sender, ProgressChangedEventArgs e)
            {
                //percent = e.ProgressPercentage
                Console.WriteLine("uploading "+e.ProgressPercentage);
            };

            api.UploadFile(new FileInfo(fileName), destinationPath).Wait();

            DateTime today = DateTime.Now;
            DateTime answer = today.AddDays(Convert.ToDouble(-45));

            Entry items = api.GetItems(destinationPath).Result;
            foreach (MailRuCloudApi.File f in items.Files)
            {
                if (f.LastModifiedTimeUTC<answer)
                {
                    api.Remove(f.FulPath).Wait();
                }
            }

            api = null;

        }
    }
}

Запуск из bat:

path_to_exe "path_unload_file" "path_cloud_folder" "login" "password"

bat в планировщик настроить время при необходимости.

Скрин примера работы:

 

4

Скачать файлы

Наименование Файл Версия Размер
исходник, проект, бинарь, батник
.7z 252,86Kb
10.05.18
5
.7z 252,86Kb 5 Скачать

См. также

Комментарии
Избранное Подписка Сортировка: Древо
1. pallid 185 11.05.18 11:41 Сейчас в теме
оно работает и на бесплатной подписке к облаку?
в редми написано что работает и с файлами больше 2Гб, но вроде это возможно только на платных подписках
3. ifal 229 11.05.18 13:19 Сейчас в теме
(1) Судя по коду библиотеки там стоит ограничение при записи на 2Гб.
2. dmarenin 11.05.18 11:55 Сейчас в теме
работает на бесплатной, что касается свыше 2 гб сказать не могу не проверял, если через браузер возможно грузить больше 2 гб, то и утилита сможет
4. obmanOZ 1 17.05.18 09:35 Сейчас в теме
Добрый день! А можно для непродвинутых пользователей дать более подробную инструкцию как работать с скаченным материалом )
При скачке ожидал, что внутри будет развернутая инструкция типа как ставить, какие требования, что прописать и куда и пример )
5. dmarenin 17.05.18 17:26 Сейчас в теме
в архиве есть батник, в нем меняете свои пути, пример есть в статье
6. Shalnov 73 11.10.18 08:01 Сейчас в теме
последующим удалением по истечению 45 дней из облака мейл

Было бы здоров, чтобы этот параметр тоже передавать, а если не передан, то по умолчанию 45
7. Shalnov 73 11.10.18 08:34 Сейчас в теме
C:\Backup\ConsoleApplication1\bin\Debug>C:\Backup\ConsoleApplication1\bin\Debug\ConsoleApplication1.
exe "C:\Backup\Backup" "Backup" "тут был логин..." "тут был пароль"
4

Необработанное исключение: System.AggregateException: Произошла одна или несколько ошибок. ---> Syst
em.IO.FileNotFoundException: Файл 'C:\Backup\Backup' не найден.
в System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
в System.IO.FileInfo.get_Length()
в MailRuCloudApi.MailRuCloud.<UploadFile>d__38.MoveNext() в D:\__\_source\Mail.Ru-.net-cloud-clie
nt-master\MailRuCloudApi\MailRuCloudApi.cs:строка 643
--- Конец трассировки внутреннего стека исключений ---
в System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken
)
в System.Threading.Tasks.Task.Wait()
в ConsoleApplication1.Program.Main(String[] args) в D:\__\_source\Mail.Ru-.net-cloud-client-maste
r\ConsoleApplication1\Program.cs:строка 37
8. dmarenin 44 11.10.18 11:54 Сейчас в теме
(7)Файл 'C:\Backup\Backup' не найден.??
Оставьте свое сообщение