Skip to content

userosos/CloudMailRu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Плагин Total Commander для работы с cloud.mail.ru

Plugin screenshot

Описание

Данная программа является плагином виртуальной файловой системы (WFX) для файлового менеджера Total Commander, реализующим взаимодействие с сервисом cloud.mail.ru (Облако Mail.ru) через WEB API. В текущей версии плагином поддерживаются:

  • Работа с несколькими аккаунтами
  • Навигация по каталогам
  • Скачивание файлов из облака
  • Заливка файлов в облако
  • Удаление файлов в облаке
  • Переименование/перемещение файлов в облаке
  • Просмотр свойств файла в облаке через набор дополнительных колонок TC
  • Работа с правами доступа на каталоги и файлы
  • Работа с публичными ссылками в режиме только для чтения
  • Двухфакторная авторизация
  • Файловые комментарии в облаке
  • Шифрование на лету

Реализован только Unicode-набор функций, на не NT-версиях Windows плагин работать не будет. TCx64 поддерживается полностью.

Перед использованием ознакомьтесь с лицензионным соглашением по использованию Сервиса Облако@mail.ru

Установка и использование

Скачайте текущий стабильный релиз, распакуйте его, и подключите плагин MailRuCloud.wfx/MailRuCloud.wfx64 (при правильном подключении плагин появится в панели "Сетевое окружение"). Вызовите настройки плагина (Alt+Enter), и добавьте все необходимые аккаунты.
При возникновении вопросов по установке и использованию плагинов в Total Commander обратитесь к его справке.

Хранение паролей

Сохранённые пароли аккаунтов по умолчанию будут сохранены в открытом виде.
Пароли аккаунтов можно не указывать, в этом случае они будут запрашиваться при каждом подключении.
Также возможно использование встроенного в TC менеджера паролей (опции "Store password in TC password manager" в настройках и в диалоге запроса пароля).

Стандартные и публичные аккаунты

Плагин поддерживает два варианта работы с Облаком. Стандартный - когда у вас есть логин и пароль от аккаунта, и публичный - когда у вас есть публичная ссылка вида https://cloud.mail.ru/public/ABCD/NhEYwQELx. В первом случае будут доступны все возможности Облака, во втором - будет доступно только чтение каталогов и скачивание файлов.

Получение прямых ссылок на файлы

Плагин поддерживает получение прямых ссылок для файлов, к которым предоставлен публичный доступ. Эта возможность доступна при вызове свойств файла/каталога в облаке, при этом в публичных аккаунтах прямые ссылки могут быть получены сразу, в стандартных - после предоставления к ним публичного доступа. При этом для каталогов рекурсивно запрашиваются прямые ссылки на все объекты внутри каталога.
Полученные списки можно использовать в сторонних программах, например - в качестве онлайн-плейлистов для медиаплеера.

Настройки плагина

Global settings

Load SSL libraries only from plugin directory

При включении опции плагин будет пытаться загрузить SSL-библиотеки из собственного каталога, в случае существования подкаталогов /x32 и /x64 - загрузка будет производиться из каталога по соответствию разрядности используемой версии плагина. Если опция отключена, то плагин попытается загрузить библиотеки, найденные в системе.

Enable space info logging

При включении опции плагин будет запрашивать информацию о занятом месте, и выводить её в протокол после завершения любых файловых операций.

Preserve file creation time

При включении опции плагин будет пытаться устанавливать для всех скачиваемых файлов время создания, время изменения и время последнего доступа равными тому, что установлены в облаке (время загрузки файла в облако). В противном случае будет установлено текущее время.
Важно: установка времени файлов в облаке не поддерживается API, эта опция работает только при скачивании.

Show accounts trash folders

Опция включает отображение Корзины для всех стандартных аккаунтов (в список соединений добавляются папки вида %connection_name%.trash). Подробнее о функционале Корзины см. ниже.

Show accounts shared links folders

Опция включает отображение списка общих ссылок для всех стандартных аккаунтов (в список соединений добавляются папки вида %connection_name%.shared). Подробнее об этом функционале см. ниже.

Show accounts invites folders

Опция включает отображение списка входящих ссылок для всех стандартных аккаунтов (в список соединений добавляются папки вида %connection_name%.invites). Подробнее об этом функционале см. ниже.

Copying/moving between accounts via public link

По умолчанию в плагине отключены файловые операции между аккаунтами (см обсуждение). Однако имеется возможность копирования/перемещения файлов через временные публичные ссылки, включаемая опцией "Copying/moving between accounts via public link". При её включении плагин будет пытаться выполнить операции с файлами, создавая для каждого из них публичную ссылку (если она отсутствует у файла). После завершения операции ссылка удаляется (если до этого она не существовала).

Поскольку операции над большим массивом файлов могут быть продолжительными, рекомендуется выполнять перенос файлов между аккаунтами через команду clone.

Override split file size to

Облако ограничивает максимальный размер файла для бесплатных аккаунтов. Официально это ограничение указано как 2GiB, но по факту оно всегда чуть меньше (по всей видимости, в этот размер включена длина имени файла). Поэтому плагин считает таким ограничением величину 2147483392 байт (2GiB - 256). Если включить опцию "Split large files to 2Gb parts", плагин будет разбивать закачиваемый файл на части именно этого размера.
При необходимости существует возможность переопределить эту величину. Для этого задайте этому параметру необходимое значение в байтах, например 200000000.

On downloads/uploads error

Определяет поведение плагина при ошибках операций скачивания/закачивания файлов и копировании/перемещении файлов между аккаунтами. Доступны следующие режимы:

  • Ask user: при ошибке будет выведен запрос с вариантами "Отмена" (прекращает операцию), "Повтор" (повторяет операцию с файлом), "Игнорировать" (пропускает файл, продолжает операцию со следующим файлом).
  • Ignore file: пропускает все файлы, при обработке которых возникли ошибки.
  • Abort operation: прекращает операцию при первой же ошибке.
  • Retry with this file: повторяет операцию с файлом до тех пор, пока а) не истечёт количество попыток, заданное в параметре Retry attempts; б) операция не завершится успешно; в) пользователь вручную не прекратит операцию.

Retry attempts

Количество повторов операций при ошибках, в случае выбора режима "Retry with this file". Отрицательные значения принимаются за бесконечное число попыток.

Wait

Время в миллисекундах между повторами операций в случае выбора режима "Retry with this file".

Overwrite splitted chunk mode:

При включении опции "Split large files to 2Gb parts" возможна ситуация, когда части разбитого файла уже существуют в Облаке. Поскольку невозможно выдать запрос на перезапись файла в этом случае (Total Commander ничего не знает о разбиении файла, для него вся операция происходит атомарно), поведение плагина будет определяться этой настройкой. По умолчанию все существующие части файла будут перезаписаны.

Delete file after upload mode:

Эта опция определяет поведение плагина в случае, когда перемещаемый из локальной файловой системы файл невозможно удалить (например, при наличии у него атрибута Read Only). По умолчанию плагин запросит выбор действия у пользователя.

Overwrite local files mode:

Эта опция позволяет переопределить стандартное поведение плагина при попытке перезаписи существующего локального файла (это может быть полезно при синхронизации и других длительных операциях). По умолчанию поведение не переопределяется (плагин будет запрашивать выбор действия у пользователя).

Plugin icons mode:

Эта опция переключает режимы отображения иконок для специальных каталогов (в скобках дано название внешнего файла иконки): каталог аккаунта (cloud.ico), каталог публичного аккаунта (cloud_public.ico), каталоги с публичным доступом (shared.ico), каталоги с общедоступной публичной ссылкой (shared_public.ico).

Доступны следующие режимы:

  • System default: отображается стандартная системная иконка для всех каталогов.
  • Internal icons: для специальных каталогов отображаются только встроенные иконки.
  • Internal icons overlay: встроенные иконки накладываются на стандартную системную иконку каталога.
  • External icons: иконки специальных каталогов подгружаются из подкаталога icons в каталоге плагина.
  • External icons overlay: иконки специальных каталогов подгружаются из подкаталога icons в каталоге плагина и накладываются на стандартную системную иконку каталога.

Размер иконок считывается из конфигурационного файла Total Commander. TC позволяет установить нестандартные размеры иконок, в таких случаях плагин попытается получить наиболее близкие по размеру системные иконки. Однако, в режимах с наложением результирующие иконки могут выглядеть размыто.

Для применения этой настройки требуется перезапуск TC.

Disable background operations support

Эта опция отключает поддержку фоновых операций в плагине (для применения требуется перезапуск TC).

URL encode direct download links

Эта опция включает представление прямых ссылок в формате URL-encoded. Кодированные ссылки корректно работают в большинстве программ, в отличие от некодированных (которые более человекочитаемы).

Update direct download links immediately

При включении этой опции плагин начнёт запрашивать список прямых ссылок немедленно после открытия свойств публичного объекта, либо после того, как публичная ссылка будет создана. Если опция выключена, для получения ссылок потребуется нажать кнопку обновления.

Try to find files by hash before uploading

Каждый файл в Облаке может быть идентифицирован по уникальному хеш-ключу, причём одинаковые файлы имеют одинаковые хеши. Таким образом, глобально Облако хранит фактически только одну копию каждого файла, даже если сам файл есть у многих пользователей.
При включении этой опции плагин вычисляет хеш для каждого закачиваемого файла и пытается найти этот файл в Облаке. В случае, если такой файл уже есть, то он добавляется без фактической передачи данных, в противном случае происходит обычная процедура заливки файла в Облако.

Check uploads/downloads CRC

Эта опция включает проверку хеш-ключа файла при передаче файла, таким образом гарантируя корректность передачи.

Network settings

Network operations timeout (ms)

Позволяет переопределить таймауты сетевого подключения. Большое значение таймаута может предотвратить обрыв связи при плохом соединении, малое - остановить операцию при перегруженном канале. В случае, если указано любое значение меньше 0, используются стандартные системные настройки параметра.

Proxy settings

Набор параметров (тип прокси, адрес, порт, логин и пароль) для соединения с сетью через прокси-сервер. Поддерживаются http/https/socks4/socks5-прокси.

При необходимости пароль прокси-сервера также может быть сохранён в менеджере паролей Total Commander (опция "Store proxy password in TC password manager").

File comments setings

Важно: Total Commander не поддерживает работу с файловыми комментариями в FS-плагинах, поэтому плагин CloudMailRu реализует этот функционал самостоятельно. Поскольку открытого описания формата файловых комментариев не существует, эта реализация может содержать ошибки, ведущие к порче или потере комментариев.

Descript.ion files support

При включении опции плагин будет пытаться получить комментарии из файла descript.ion (если он существует в текущем каталоге облака) и вывести содержимое комментария в контентное поле description/вкладку Description в диалоге свойств.

Enable descript.ion editor

Опция включает редактирование комментариев для файлов в облаке на вкладке Description в диалоге свойств файла. Если опция отключена, комментарий доступен только для просмотра.

Copy file comments from local filesystem

При включении этой опции при копировании файлов в Облако, плагин будет копировать также и имеющиеся локальные файловые комментарии. Комментарии для каталогов переноситься не будут из-за ограничений API WFX.

Copy file comments from cloud filesystem

При включении этой опции при копировании файлов из Облака, плагин будет копировать также и имеющиеся в Облаке файловые комментарии. Комментарии для каталогов переноситься не будут из-за ограничений API WFX.

Track cloud filesystem changes (file rename, delete, etc)

Эта опция заставляет плагин отслеживать изменения файловой системы в Облаке, и вносить соответствующие изменения в файловые комментарии (аналогично тому, как Total Commander делает это в локальной файловой системе). Например, если переименовать или переместить файл в Облаке, то плагин перенесёт файловый комментарий с учётом нового имени.

Override default comment file name

Этот параметр позволяет переопределить имя файла, в котором плагин будет сохранять файловые комментарии (например, в случае обнаружения конфликтов с поддержкой комментариев в Total Commander). Это имя переопределяется как для Облака, так и для локальной файловой системы.

Уровни протоколирования

При необходимости можно настроить количество собщений, выводимых в протокол соединения. Данный параметр не конфигурируется через настройки и должен быть изменён пользователем самостоятельно через ручное редактирование файла MailRuCloud.global.ini (параметр LogLevel).
В плагине существуют следующие уровни протоколирования:
1 (Connect): Включение панели соединения и вывода в протокол. Отключение этого уровня приведёт к полному отсутствию любого протоколирования (TC не включит соответствующую функцию).
2 (FileOperation): Протоколирование стандартных файловых операций + вывод сообщения о свободном месте (при включённой опции Enable space info logging).
4 (Detail): Детальное протоколирование некоторых операций (например, процесса авторизации) и нестандартных файловых операций (например, загрузка с авторазбиением).
8 (Warning): Протоколирование ошибок, не препятствующих дальнейшей работе (ошибки разбиения файла, очистки временных файлов и т.п.).
16 (Error): Протоколирование сбоев и неудачных операций.
32 (Debug): Дополнительное отладочное протоколирование.

Итоговое значение ключа настройки должно равняться сумме значений нужных уровней протоколирования, например для вывода ТОЛЬКО сообщений о файловых операциях (FileOperation) и различных ошибках (Warning + Error), значение LogLevel нужно установить равным 27 (1 + 2 + 8 + 16).
По умолчанию LogLevel принимается как 31 (все сообщения, кроме отладочных).

Переопределение рабочего шарда

При соединении с Облаком, плагин каждый раз запрашивает адрес шарда - сервера, с которого будет производиться скачивание файла. При необходимости можно переопределить это значение, вручную отредактировав файл MailRuCloud.ini, вписав в секцию нужного соединения ключ shard_override с нужным адресом, например

shard_override=https://cloclo44.datacloudmail.ru/get/

Это переопределение не требуется при нормальной работе плагина.

Команды плагина

  • rmdir dirname - быстрое удаление каталога dirname, находящегося в текущем каталоге (полный путь к удаляемому каталогу набирать не нужно). При этом не производится рекурсивное удаление содержимого каталога, что экономит время.
  • clone link - склонировать в текущий каталог содержимое публичного каталога, доступного по ссылке weblink.
  • trash - быстрый переход в Корзину текущего аккаунта.
  • shared - быстрый переход в каталог общих ссылок текущего аккаунта.
  • invites - быстрый переход в каталог входящих ссылок текущего аккаунта.

Многопользовательские настройки

Плагин поддерживает хранение настроек в каталоге пользователя (%APPDATA%\MailRuCloud). Этот каталог выбирается по умолчанию в том случае, если файл настроек MailRuCloud.global.ini отсутствует в каталоге плагина, а сам каталог плагина недоступен для записи. В противном случае проверяется значение параметра IniPath:
0: Будут использоваться только настройки из каталога плагина (значение по умолчанию).
1: Будут использоваться только настройки из каталога %APPDATA%\MailRuCloud.
2: В случае, если каталог плагина доступен для записи, будут использоваться настройки из него, в противном случае - из каталога %APPDATA%\MailRuCloud.
Важно: права доступа к самим файлам настроек не проверяются. Настройка IniPath может изменяться только прямым редактированием MailRuCloud.global.ini (предполагается, что её будет использовать только администратор системы).

Ограничение максимально поддерживаемых путей.

Максимально поддерживаемая длина путей в Облаке составляет 1024 байта. API FWX также поддерживает пути до 1024 байт длиной, однако из-за того, что часть этого объёма используется под хранение имён соединений, фактический максимум пути в каждом аккаунте будет уменьшен на длину его имени. Таким образом файлы, путь к которым превышает этот максимум, могут быть недоступны через плагин.

Копирование между аккаунтами.

Копирование/перемещение из аккаунта в аккаунт не поддерживается плагином, несмотря на то, что Total Commander поддерживает такие операции в виртуальных файловых системах посредством использования файлового буфера в локальной файловой системе. Причина в том, что список аккаунтов представлен каталогом первого уровня в файловой системе плагина, и нет способа уведомить Total Commander об этом.
При необходимости, можно обойти это ограничение: нужно установить вторую копию плагина, и осуществлять копирование между разными копиями. В этом случае TC сможет задействовать локальный буфер.
Однако, в любом случае рекомендуется использовать файловые операции посредством ссылок (Copying/moving between accounts via public link).

Поддержка Корзины.

Удалённые файлы и каталоги хранятся в Облаке ещё некоторое время. Они недоступны для полноценной работы, но их можно восстановить. Для доступа к списку удалённых объектов используется Корзина - виртуальный каталог, доступный у каждого аккаунта по имени %account_name%.trash. Основные свойства Корзины:

  • Корзина содержит плоский список удалённых объектов (файлов и каталогов), без возможности их просмотра, редактирования и удаления. Удалённые каталоги нельзя открыть.
  • Для объектов в корзине доступен только просмотр свойств (Alt+Enter, для файлов также работает Enter). В открывшемся диалоге можно просмотреть доступные свойства удалённого объекта (время удаления, изначальное расположение и идентификатор удалившего пользователя), восстановить объект (восстановление всегда производится в изначальное расположение), либо очистить Корзину (все удалённые объекты будут безвозвратно стёрты).
  • Также свойства удалённых объектов доступны через контентные поля плагина (deleted_at, deleted_from, deleted_by).
  • Вызов свойств каталога Корзины также открывает диалог свойств, в котором можно просмотреть общий объём всех удалённых файлов, восстановить их, либо очистить Корзину.
  • Корзина в плагине не различает одинаково именованные объекты, откуда бы они не были удалены. Несмотря на то, что в списке объекты будут отображаться по разному, все операции будут производиться только над первым объектом из одноимённых.
  • Вместо времени создания и времени последнего изменения объектов в Корзине отображается время их удаления.
  • Быстрый доступ к Корзине доступен по команде trash, выполненной в любом каталоге внутри аккаунта. Это работает даже если отображение Корзины выключено в настройках.

Поддержка каталога общих ссылок.

Любому файлу или каталогу в Облаке может быть предоставлен доступ одним из невзаимоисключающих способов:

  • Создание публичной ссылки на объект (он становится доступен для просмотра всем, у кого есть ссылка).
  • Предоставление доступа другим пользователям (указанному пользователю приходит приглашение на использование указанного файла/каталога с заданными правами).

Для просмотра всех объектов, к которым предоставлены такие доступы, используется виртуальный каталог, доступный у каждого аккаунта по имени %account_name%.shared. Каждый объект в этом каталоге представляет ссылку на сответствующий источник в Облаке: для каталогов это сам каталог, для файлов - каталог, в котором файл располагается. Просмотр свойств такой ссылки работает также, как на источнике, удаление ссылки приводит как к удалению доступов всех пользователей к источнику, так и к удалению публичной ссылки (убрать только один тип доступа можно в диалоге свойств объекта).
Внимание: одинаково именованные ссылки в списке не различаются, независимо от того, на какой исходный объект они указывают.

Быстрый доступ к каталогу общих ссылок доступен по команде shared, выполненной в любом каталоге внутри аккаунта. Это работает даже если его отображение выключено в настройках.

Поддержка каталога входящих ссылок.

Каталоги, к которым вам предоставлен доступ другими пользователями, можно посмотреть в виртуальном каталоге, доступном по имени %account_name%.invites. Просмотр и управление объектами в этом каталоге производится через диалог свойств (Alt+Enter или Enter).

Внимание: одинаково именованные объекты в списке не различаются, независимо от того, на какой исходный каталог они указывают.

Быстрый доступ к каталогу входящих ссылок доступен по команде invites, выполненной в любом каталоге внутри аккаунта. Это работает даже если его отображение выключено в настройках.

Шифрование на лету

Внимание: это экспериментальная функция, находящаяся в разработке. Пожалуйста не используйте её при работе с важными данными!

Шифрование включается для каждого аккаунта отдельно. При включённом шифровании передаваемые в Облако файлы будут зашифрованы алгоритмом AES (Rijndael), при скачивании - прозрачно расшированы.
Плагин не хранит пароли шифрования. Они могут быть сохранены в менеджере паролей Total Commander, либо должны вводиться по требованию.

Параметры шифрования

Encrypt/decrypt files

  • No: Шифрование отключено, данные передаются и принимаются "как есть".
  • Always: Шифрование всегда включено, данные будут шифроваться паролем, сохранённым в менеджере паролей Total Commander.
  • Ask once: Пароль шифрования будет запрошен при входе в аккаунт, при вводе пароля данные будут шифроваться им, при отмене ввода шифрование будет выключено. Дополнительно: для проверки корректности используемого пароля его хеш сохранится в настройках после первого использования. Таким образом ввод неправильного пароля в режиме Ask once будет приравнен к отмене ввода.

Also encrypt filenames

При включении этого режима имена передаваемых файлов будут шифроваться также, как и их содержимое.

Часто задаваемые вопросы

Как и куда правильно жаловаться на проблемы?

Перед тем, как сообщать о проблеме, соберите следующую информацию:

  • Версию плагина (если брали из релизов, убедитесь, что в версии из master ошибка всё ещё присутствует).
  • Версию и разрядность вашей операционной системы, например Windows 8.1 x64 или Windows XP SP3 x32.
  • Версию и разрядность Total Commander, например Total Commander 8.52a x64.
  • Протокол работы плагина, содержащий код ошибки. Протокол пишется в текстовом окошке, появляющемся над файловыми панелями при соединении; полное содержимое открывается по двойному щелчку. Файл протокола обычно сохраняется в каталоге %temp%\_tc\ с именем вроде wcftplog.???.
    Важно: проблемы со сборками и репаками TC не принимаются. Убедитесь, что проблема воспроизводится на оригинальной немодифицированной установке Total Commander.
  • Последовательность действий, приводящих к ошибке, ожидаемый результат и результат полученный.

Жаловаться можно в issues или в тему на форуме. Пожалуйста, убедитесь, что похожая проблема не зарегистрирована.

Как и где сделать запрос на добавление функционала?

В issues или в тему на форуме. Пожалуйста, убедитесь, что похожих запросов не зарегистрировано (в т.ч. в закрытых issues).

Я установил плагин, но возникает ошибка "Could not load SSL library".

В случае, если в системе уже присутствуют (и загружены в память) библиотеки libeay32.dll/ssleay32.dll нужной разрядности, плагин использует их. Это происходит в большинстве случаев, т.к. эти криптографические библиотеки используются во многих программах. В случае, если библиотеки отсутствуют в памяти, произойдёт попытка загрузки их из каталога Total Commander, затем - из каталога плагина. Убедитесь, что файлы libeay32.dll/ssleay32.dll присутствуют в этих каталогах.
Если библиотеки libeay32.dll/ssleay32.dll установлены, но ошибка повторяется, убедитесь, что они имеют нужную разрядность.
Будьте внимательны: цифры 32 в имени файлов libeay32.dll/ssleay32.dll не означают разрядность библиотек, т.е. их x32 и x64 версии называются одинаково.
Также можно принудительно использовать только библиотеки, находящиеся в каталоге плагина (например, во избежание проблем совместимости). Для этого включите в настройках плагина опцию "Load SSL libraries only from plugin directory".
Полезно: для разделения x32 и x64-версий библиотек поместите их в подкаталоги x32 и x64 соответственно.

Плагин требует msvcr110.dll или другую библиотеку.

Используемая сборка SSL-библиотек собрана с зависимостью от библиотек Microsoft C++ run-time. Если они отсутствуют в системе, вам понадобится установить в систему соответствующий распространяемый пакет Microsoft Visual C++, либо заменить SSL-библиотеки на собранные без этой зависимости.

Плагин показывает пустой список каталогов.

Вы подключили его к старой версии Total Commander, не поддерживающей Unicode. Минимальная требуемая версия Total Commander - 7.5, однако некоторые возможности не будут работать (или будут работать некорректно) на версиях ниже 8.5.

Работает ли плагин в программе %software_name%?

Некоторые файловые менеджеры поддерживают файлсистемные плагины от Total Commander, но работоспособность гарантируется только для Total Commander. В случае возникновения проблем при использовании с другими программами обращайтесь к их разработчикам.

Использование сторонних продуктов

В плагине используются некоторые иконки набора Snipicons, доступного под лицензией Creative Commons Attribution-NoDerivatives 4.0 International License.

Поддержка шифрования реализована с помощью библиотеки компонентов DCPcrypt Cryptographic Component Library v2 by David Barton ([email protected]), доступного под лицензией MIT.

Licence

GNU GPL v3.0

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published