Автоматическая очистка корзины яндекс диска
К написанию этого поста привела довольно странная ошибка, которую вчера вечером на ноутбуке с Linux (да, я из тех странных людей, кто использует GNU/Linux на ноутбуке) я получил вместо содержимого своего Яндекс.Диска:
Первая мысль: сеть отвалилась, ничего страшного. Но при попытке перемонтировать директорию появилась новая ошибка:
Это было уже странно. Токен протух? Не беда, авторизую заново!
Это приложение заблокировано за вредоносные действия, поэтому доступ не разрешён (unauthorized_client).
Первая мысль: чтоооо?
Очистить Корзину
Файлы, перемещенные в Корзину, продолжают занимать место на вашем Диске. Вы можете очистить Корзину двумя способами:
Озаботившись бэкапами на своем скромном сервере я столкнулся с очевидным дальнейшим шагом — а где все это добро хранить?
Выбора особо нет да и у меня есть халявный Яндекс Диск на котором со всеми бонусами у меня аж 63 Гб, грех не воспользоваться.
В принципе, задачу я решил, но как и многие другие пользователи обнаружил — место не резиновое и надо корзину периодически очищать, иначе место быстро заканчивается а, времени да и возможности постоянно лазить в веб интерфейс и чистить корзину нет. Непорядок, надо исправлять.
Давайте потратим минут 10-15 и на год забудем о проблеме, поехали.
Вводные данные на чем у меня все работает:
Заполняем поля как указано на скриншоте
В пункте Доступы выберите Яндекс Диск REST API и поставьте галочки как на скриншоте
Спускаемся в самый низ страницы и жмем кнопку Создать приложение
В полученной странице есть все необходимые нам данные, обязательно сохраните их (PS мои реальные данные я удалил но сохранил вам на скрине для наглядности, у вас они будут другие)
На этой странице жмем Разрешить
На этой странице увидим выданный токен, обязательно сохраните его!
Зайдем в консоль вашего сервера под рутом и создадим скрипт
В котором пропишем следующие команды
где на месте ваш_токен внесем данные из шага 8
Сохраним скрипт и сделаем его исполняемым
Дадим команду crontab -e
в открывшемся окне напишем
Сохраним файл, сервис крон автоматически примет эти данные и запустит в указанное время. В данном случае это будет происходить каждый день в 3 часа ночи каждый год.
Ну вот и все, я дольше писал статью и делал скриншоты чем вы все это сможете реализовать у себя :)
Маленький совет — я решил очищать корзину ДО того как будет запускаться следующий мой скрипт, который бэкапит базы данных моих сайтов, таким образом я могу быть чуть более спокоен что места на диске хватит для моих данных.
Если хотите убедиться что вы все сделали правильно то можете просто запустить эту команду в консоли
(не забудьте в эту строку внести ваш_токен)
и убедиться что корзина вашего аккаунта пуста.
Ранее публиковали материал о выгрузке бэкапов 1С в облачное хранилище. Точнее — как настроить синхронизацию выбранной папки на Яндекс.Диск.
Эта схема настроена у одного клиента. Но выяснилось следующее: скрипт резервного копирования держит на жестком диске несколько актуальных копий. Эти файлы успешно синхронизируются, а старые удаляются в Корзину.
По истечение некоторого времени в Корзине образуется множество файлов, пока не заполнится все доступное пространство.
Опаньки — синхронизация останавливается. Новые данные уже не «улетают» в облако.
Конечно же, можно авторизоваться и выполнить очистку вручную. Но такой вариант в перспективе быстро надоест. Надо автоматизировать процесс.
3. Настройка планировщика Windows
Скачайте утилиту Curl по ссылке и распакуйте содержимое архива в выбранную папку на локальном диске рабочей станции/сервера.
Учтите разрядность вашей операционной системы для загрузки программы.
Создайте bat-файл C:\Scripts\emptytrash.bat со следующим содержимым:
, где " ваштокен " — токен, который вы получили на шаге 2.
Другой вариант обращения к серверу Яндекса через указание порта 443. В этом случае скрипт выглядит так:
Вариант для vbs-скрипта
Финальный этап — создайте простую задачу в Планировщике и установите триггер (необходимое время запуска).
Очистить Корзину
Файлы, перемещенные в Корзину, продолжают занимать место на вашем Диске. Вы можете очистить Корзину двумя способами:
Внимание. Если файлы были удалены из Корзины (автоматически или вручную), мы не сможем их восстановить: при очистке Корзины ее содержимое стирается с серверов Яндекса навсегда.
Восстановить файлы и папки из Корзины
Вы можете восстановить удаленные файлы и папки, только пока они еще находятся в Корзине:
Внимание. Если файлы были удалены из Корзины (автоматически или вручную), мы не сможем их восстановить: при очистке Корзины ее содержимое стирается с серверов Яндекса навсегда.
Очистить Диск
Если вам нужно полностью очистить Диск, выделите все папки и файлы, удалите их, а затем очистите Корзину.
Чтобы удалить файл или папку, выделите их и нажмите кнопку Удалить на верхней панели или в контекстном меню.
Если на верхней панели нет кнопки Удалить , нажмите → Удалить .
Файлы, которые вы удалили с Диска, попадают в Корзину и продолжают занимать место на Диске. Через 30 дней они будут удалены автоматически. Чтобы освободить больше места, очистите Корзину самостоятельно.
Восстановить файлы и папки из Корзины
Вы можете восстановить удаленные файлы и папки, только пока они еще находятся в Корзине:
Внимание. Если файлы были удалены из Корзины (автоматически или вручную), мы не сможем их восстановить: при очистке Корзины ее содержимое стирается с серверов Яндекса навсегда.
Решение
2. Получение токена
Перейдите в браузере по следующей ссылке с вашим client_id , полученным при регистрации.
Приложение запросит доступ к вашим данным на Яндексе — нажмите кнопку « Разрешить ».
После чего на экране вы увидите токен (комбинация букв и цифр) — сохраните его .
Что произошло?
Обратившись к Google я сразу понял, что не одинок. Есть баг в официальном гитхабе, а также обсуждение на официальном форуме.
Краткое содержание: client_id утилиты заблокирован Яндекс.Диском, из-за чего авторизоваться больше нельзя. Можно попробовать поменять client_id, но не факт, что та же участь не постигнет и новый id.
Ответ поддержки опубликован на том же форуме:
Дело в том, что программа Rclone позволяет использовать Яндекс.Диск в качестве инфраструктурного компонента, а Яндекс.Диск — это персональный сервис, который не рассчитан на решение таких задач. Поэтому мы не поддерживаем работу связки Rclone — Яндекс.Диск.
"Инфраструктурный компонент"? Ну раз нельзя, то наверное это описано в правилах подумал я и ничего такого в правилах самого диска или его публичного API я не нашёл.
Ладно, напишем в поддержку.
Первый ответ прилетает 1 в 1 тот, что опубликован выше (про "инфраструктурный компонент"). Окей, мы не гордые.
А подскажите пожалуйста, какое правило сервиса это нарушает?
Я изучил условия использования Яндекс диска и никаких запретов на использование "в качестве инфраструктурного компонента" там нет.
Более того, я не могу использовать утилиту с личного ноутбука для работы с диском. Это уже совсем никак под " инфраструктурный компонент" не подпадает. Штатный клиент диска ужасен, уж простите.
Сергей, дело в том, что Яндекс.Диск — это в первую очередь персональный сервис, который не рассчитан на загрузку резервных копий в автоматическом режиме.
Вы можете синхронизировать данные между вашим компьютером и Яндекс.Диском, а также пользоваться веб-интерфейсом Диска для загрузки файлов и работы с ними.
Если вас по каким-то причинам не устраивает наша программа, пожалуйста, озвучьте их. Традиционно мы прислушиваемся к мнению пользователей при выпуске обновлений продукта.
Вы не ответили на мой вопрос. Подскажите пожалуйста, какой пункт правил сервиса нарушает использование rclone? Я внимательно изучил правила по вашей ссылке (ещё до того, как вы из прислали).
А теперь вы блокируете OpenSource утилиту по надуманной причине.
Кстати, программа не осуществляет "загрузку резервных копий в автоматическом режиме", программа предназначена для работы с облачными хранилищами, в том числе для синхронизации данных между компьютером и Яндекс.Диском. И этой мой основной use-case утилиты, который теперь недоступен.
Пользователь также предупреждается об этом в п. 4.6. «Условий использования Яндекс.Диска».
Обратите внимание, что «Условия использования Яндекс.Диска» также устанавливают для Пользователя обязанность действовать добросовестно и воздержаться от злоупотребления функциями Сервиса. Пользователь в том числе обязуется воздержаться от организации массового файлообмена с использованием функций Сервиса.
Яндекс имеет право применять правила, лимиты и ограничения, направленные на предотвращение, ограничение и пресечение массового файлообмена по правилам п. 4.5. настоящих «Условий».
Последний ответ привнёс ясности. Особенно, первые два абзаца со ссылкой на п. 3.1. «Пользовательского соглашения» Яндекс и п. 4.6. «Условий использования Яндекс.Диска». Текст 4.6 тут не приведён, приведу:
4.6. Яндекс оставляет за собой право устанавливать любые правила, лимиты и ограничения (технические, юридические, организационные или иные) на использование Сервиса, и может менять их по собственному усмотрению, без предварительного уведомления Пользователя. В случаях, когда это не запрещено законодательством, указанные правила, лимиты и ограничения могут быть различными для различных категорий Пользователей.
1. Создание приложения
Нажмите на кнопку « Зарегистрировать новое приложение » и заполните информацию:
- Название приложения — на ваше усмотрение. Например, « EmptyTrash ».
- Платформы — отметьте галку « Веб-сервисы » и нажмите ниже на ссылку « Подставить URL для разработки ». При этом, поле « Callback URI » примет значение
- В разделе « Яндекс.Диск REST API » отметьте все разрешения.
- Внизу страницы нажмите на кнопку « Создать приложение ».
Результат выполнения команды — регистрация приложения.
Что делать?
Пока использовать свой client_id и жить дальше. Но, судя по ответу техподдержки, можно ждать продолжения охоты на ведьм и блокировки также других client_id, user-agent rclone или, даже, какие-то эвристические способы заблокировать утилиту.
P.S. Я искренне надеюсь, что имела место простая ошибка или недопонимание. В Яндексе работают отличные специалисты (много с кем я знаком лично) и среди них, уверен, есть пользователи rclone.
Обновление 24.02.2020:
В выпуске 690 подкаста Радио-Т, соведущим которого также является уважаемый Бобук, обсуждалась блокировка rclone. Начало на 1:51:40.
Обновление 27.02.2020:
Авторизация по стандартному client_id снова работает.
С 6 мая мы запускаем автоматическую очистку Корзины на Яндекс.Диске.
Корзина — это особая папка на Диске. В неё попадают все файлы, которые удаляет пользователь — в том числе из приложения Диск на компьютере или телефоне. Как и любые другие данные, файлы в Корзине занимают место, но многие забывают её очищать. Из-за этого им перестаёт хватать облачного пространства.
Автоматическая очистка поможет решить проблему и сэкономит место для новых файлов. Теперь после удаления в Корзину любой файл будет храниться на Диске только 30 дней. Старые файлы, которые уже лежат в Корзине, будут окончательно удалены 6 мая.
Оййессс. Это надо было изначально, но лучше поздно, чем никогда. :)
Как насчет опции для пользователя? Я например за год кучу раз в корзине рылся. А держать в корне диска весь хлам - нет желания.
Было бы неплохо и время через которое удаляется настроить.
Много места съели халявщики что ли?
Настройки времени удаления пока не будет. Пользователи восстанавливают файлы из корзины в основном в течение месяца с момента удаления. После чего забывают об удаленных файлах навсегда. Именно поэтому мы выбрали срок хранения 30 дней.
Ну так если ваша статистика реальна (что опять же ложь, как мы все знаем) - то по умолчанию, пусть будет 30 дней. Но опционально, пусть юзер настраивает как хочет. Или в чем дело, если у меня есть мои оплаченные/полученные по акции гигабайты, то почему я не могу их использовать в корзине? Мне хватает места, я не чищу корзину. Нужно будет - сам удалю.
Выставляйте принудительно 30 дней для очистки для мертвых аккаунтов (корзины, а не файлов), кто забил под завязку диск и не пользуется - ок, пусть чистится таким, это логично. Но активным пользователям зачем так делать?
Хотелось бы самому настраивать. Синхронизирую большие файлы между работой и домом, корзина заполняется через неделю, приходится чистить вручную.
Если я купил место на диске, зачем мне автоматическое удаление из корзины? Это мое место, за которое я плачу деньги. Нужно сделать возможность отключения этой функции.
У меня предложение. Делать скромный подарок держателям диска в ДЕНЬ РОЖДЕНИЯ. Скажем. 3 или 1 гиг. Если заинтриговала идея то мне за идею и сегодняшний др жду прибавки. ))))
o_Oоткрытка: торт ввиде лет.тарелки можно с отрезанным куском. наверху свечка. Мол кусочек торта от яндекса. С др.
Ага , подарок ! тут вроде чего то подарили , пару гигабайт, а тут же у подарка истекает срок оказывается
Вот это плохая идея ребята.
Не могли бы Вы рассказать, почему?
потому, что если Вы заботитесь о клиентах, то Вы должны очищать корзину либо как в винде, при недостатке места, либо по времени, установленом пользователем.А если заботитесь о себе, то идея вполне отличная
Олег, мы думаем над дальнейшим усовершенствованием автоочистки. Спасибо за идеи!
Вот и хорошо :) А так же рассмотрите опцию вообще отказаться от использования корзины
Лучше рассмотреть опцию для версий файлов в корзине.
что вы придумали по поводу "мы думаем над дальнейшим усовершенствованием автоочистки"?
Эта опция должна быть опциональной, пользователь сам должен решать "Включить автоматическую очистку Корзины" или нет. Если я заплатил за дополнительное место (на этом аккаунте у меня бесплатных 200ГБ, но есть и 2 платных), то почему я должен очищать Корзину? У меня есть место и я его вправе использовать так, как я хочу.
Более того, я вообще не понимаю почему вы пришли к такому решению. Ведь сейчас файлы в Корзине включены в квоту (т.е. нельзя "нахитрить" себе дополнительное место путём скидывания файлов туда). Тогда зачем Вы их удаляете? Пусть заниают квоту, а если квоты пользователю не хватает — кидайте ему уведомление, мол у вас закончилась квота, но в вашей Корзине содержится N файлов, которые вы можете удалить для освобождения места.
Не хочется никого обижать, но как написали ниже, это действительно больше похоже на заботу себя родимых, чтобы освободить лишние ГБ, которые потом можно пустить в продажу (понизить тарифы, например).
Введение настраиваемой опции "Включить автоматическую очистку" было бы идеальным решением для всех, я считаю.
Согласен. Был случай, что нужен был документ через пол года. Повезло, что в корзине яндекса валялся
Хочется увидеть в корзине сортировку по дате удаления.
Спасибо за идею! Мы обязательно подумаем над этим.
Хватит уже думать годами. Реализуйте. Ощущение, что ничего не реализуете из пожеланий, а только бесполезный функционал, который непонятно для кого нужен. Или вы как политики - создаете видимость работы генерируемыми предложениями для начальства?
К нам поступают сотни пожеланий в месяц, реализовать их все сразу просто невозможно. Но мы все учитываем и ориентируемся на мнение пользователей. Автоочистка — как раз одно из пожеланий.
Ага, видно из комментариев, как людям это нужно.
Давайте сделаем по-честному: вы прямо в интерфейсе диска сообщаете людям, что идет голосование, за это дается гигабайт бесплатно. И пусть люди голосуют (а после результаты видны будут всем). Посмотрим насколько реальна статистика.
Только варианты сделаем нормальные (у вас наверное "одно из пожеланий" было примерно такое: кто-то сказал, что неплохого бы добавить опционально и после кто-то подхватил, что вполне нормально. ). Не просто: нужна автоочистка: да/нет, а именно реальное положение дел:
-нужна с настройками
-яндекс достали по ушам ездить, политиков хватает с их китайской кухней.
Пожалуй это первая плохая идея от разработчиков, надеюсь, что последняя.
Оставьте все-таки выбор пользователю.
Плохая идея за пользователя решать очишять корзину или нет.
1. При очистки корзины удалять файлы из самой корзины в Windows.
2. При установки программы сделать опцию настройки синхронизации папок.
Очень, очень плохая идея.
Почему не сделать автоочистку корзины опциональной? Я не понимаю: если у меня оплачено дополнительное пространство на диске, я не превышаю установленный лимит, не забываю чистить корзину тогда, когда мне нужно, и использую ее как обычную папку для хранения файлов, потому что мне так удобно, почему вы считаете возможным делать там что-то автоматически? И решать за меня, как именно пользоваться теми гигабайтами, за которые я плачу?
Для меня это принципиальный вопрос, потому что в корзине сейчас порядка тысячи файлов. Если я их просто восстановлю, это значит, что все папки, в которых наведен идеальный порядок, опять вернутся к тому состоянию, которое было в них до уборки. В то же время окончательно удалять эти файлы я пока не считаю необходимым. Помимо этой проблемы, в будущем возникнет другая: мне придется создать отдельную папку для таких "временных" файлов и вместо удаления их одним нажатием Delete каждый раз вырезать и вставлять в эту папку, что ни разу не экономит время, особенно если учесть, что удаляются файлы не только из проводника, но и из других программ. Плюс я никаким образом не смогу отследить их изначальное расположение.
В общем, вы сильно усложните жизнь как минимум одному до сих пор вполне довольному пользователю, если действительно сделаете автоочистку повсеместной и не предоставите пользователям возможность выбора.
Автоматическая очистка поможет вам потерять ваши файлы !
На днях была ситуация - повредились файлы на диске, Яндекс.диск решил что я их удалил и поместил в корзину.
Хорошо, что я заметил это, а если бы нет.
Идея хорошая, но было бы ещё лучше сделать это опционально. Как уже говорилось выше, что-бы можно было настроить время очистки и с возможностью вообще отключить карзину. А также, если уж время хранения файлов в карзине органичено, то было бы логично, что-бы файлы находящиеся в карзине не занимали пространство диска. Вот тогда, все на этой странице будут довольны.
Вообще, корзина на Я.Д. - это большое препятствие на пути системного администратора, который хочет автоматизировать процесс резервного копирования на Яндекс.Диск.
Казалось бы, что там автоматизировать ? Сделал простенькой скриптик, типа "del старый файл, copy новый файл", и всё!
А вот нетушки - в скором времени корзина переполнит лимит диска и вся автоматизация застопорится.
Чтобы удалить файл или папку, выделите их и нажмите кнопку Удалить на верхней панели или в контекстном меню.
Если на верхней панели нет кнопки Удалить , нажмите → Удалить .
Файлы, которые вы удалили с Диска, попадают в Корзину и продолжают занимать место на Диске. Через 30 дней они будут удалены автоматически. Чтобы освободить больше места, очистите Корзину самостоятельно.
О rclone
Немного справки:
rclone — достаточно известная открытая утилита для работы с облачными хранилищами (неоднократно раз, два, три упоминалась на Хабре). Автор называет её "rsync for cloud storage", что довольно ёмко. Но этим функциональность не ограничивается: помимо функций rsync она ещё может монтировать диски, выполнять функцию ncdu (что, кстати, мне позволило однажды обнаружить неправильный подсчёт свободного места на Яндекс.Диске и успешно решить эту проблему через техподдержку), а также кучу всего ещё. Утилита поддерживает как десятки облачных хранилищ, так и более традиционные протоколы — WebDAV, FTP, rsync и другие. Для доступа к Яндекс.Диску утилита использует официальный публичный API Диска.
Утилита поистине уникальна и (по моему мнению) представляет из себя тот класс программ, которые ставишь один раз, а пользу они приносят постоянно.
Выводы?
Совсем недавно, уважаемый bobuk в своём посте здесь на Хабре писал, что Яндекс считает, что:
Мы в Яндексе считаем, что современный интернет невозможен без культуры open source и людей, которые инвестируют свое время в разработку программ с открытым кодом.
А на практике получается совсем иначе. Отличную утилиту блокируют за что-то, что не запрещено правилами сервиса. За то, что утилита позволяет использовать открытый публичный API Диска по прямому назначению — загружать файлы. Блокируют не за нарушение правил сервиса, а потому что могут.
Вдвойне странно то, что заблокированы не конкретные нарушители правил (тоже непонятно каких, в правилах использование диска для резервных копий нигде не запрещено). Заблокирован инструмент, функция осуществления резервного копирования в котором лишь одна из многих.
Что такое инфраструктурный компонент и почему их нельзя использовать с диском тоже не понятно. Даже браузер может быть использован как "инфраструктурный компонент", не стоит ли запретить пользоваться диском в браузере?
Читайте также: