LINUX.ORG.RU
решено ФорумMobile

Синхронизация файлов с десктопа на телефон.

 , ,


0

1

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

Пробовал Syncthing — он не может писать файлы на флешку.

Пробовал Syncopoli — с тем же результатом. В логе вижу ошибку:

Syncopoli rsync: mkdir "/storage/000-0000/qq" failed: Permission denied (13)

(Чтобы случайно не запороть коллекцию, я сделал сихнхронизацию не в /storage/000-0000/Music, а в /storage/000-0000/qq.)

Попытка заранее создать каталог /storage/000-0000/qq не помогает — Syncopoli начинает ругаться на первый же каталог внутри /storage/000-0000/qq.

При этом приложению Syncopoli дарованы READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE. При том, что приложение Amaze (файловый менеджер) с такими же READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE каким-то образом умудряется создавать и удалять каталоги в /storage/000-0000. При этом, правда, у всех каталогов в /storage/000-0000 рисует метку rx, но это не мешает ему записывать файлы. Другой файловый менеджер, Files, тоже спокойно создаёт и удаляет файлы в /storage/000-0000.

Команда ls -l, исполненная в T-UI, рисует:

drwxr-xr-x 1 root everybody 131072 2020-05-10 02:10 qq

Та же команда, исполненная через adb shell, рисует:

drwxrwx--x 1 root sdcard_rw 131072 2020-05-10 02:10 qq

WTF?

Кто как перекидывает файлы с десктопа на телефон?

Кто как перекидывает файлы с десктопа на телефон?

Подключаю шнурок и копирую)

А так с записью фаиликов на флешку на ведре все сложно начиная с версии 4.4 и с каждой версией все хуже

При том, что приложение Amaze

Оно при первом действии задействует Storage Access Framework андроида, где надо было выбрать корень флешки и разрешить с ней работать. Полагаю программы синхронизации его не поддерживают. Да и вообще будущее программ синхронизации файликов на ведре печально.

F457 ★★★ ()

Пробовал Syncthing — он не может писать файлы на флешку.

Чо? Ты что-то не так делаешь. Создай новый общий каталог и выбери путь до флешки.

Kolins ()
Ответ на: комментарий от arty_bishop

Ты точно всё разрешения выдал?

Точно выдал. При установке он ничего не просит. При первом запуске просит Storage Permission (access photos, media and files on your device) — granted, и Location Permission — granted.

Если каталог для синхронизации располагается на дивайсе, то тип каталога — Send & Receive (можно сменить на Send Only или на Receive Only).

Если каталог для синхронизации располагается на карточке, то тип каталога — Send Only и сменить его нельзя. Your Android version only grants Syncthing readonly access to the selected folder.

debugger ★★ ()
Ответ на: комментарий от Kolins

Ты что-то не так делаешь.

Если выбранный каталог на дивайсе (/storage/emulated/0/...), то писать можно. Если выбранный каталог на карточке (/storage/0000-000/...), то Syncthing писать в него не может: Your Android version only grants Syncthing readonly access to the selected folder.

Android 9.

debugger ★★ ()
Ответ на: комментарий от F457

Подключаю шнурок и копирую)

А подробнее? Ну, первые два шага понятны, подоткнуть шнурок и разрешить File Transfer. А дальше что?

Наутилусом скопировать файлы один раз можно, но обновлять однажды скопированное он не очень годится. Например, если файл переименован, он скопирует его второй раз, и будет два файла — под старым именем и новым. Удалять файлы, которых нет в источнике, Наутилус не будет (или я не умею?).

Я пробовал «Open in Terminal» с дальнейшим rsync — но примонтированный через gvfs каталог в командной строке — это слёзы: всё дико тормозит, ругается на недоступные операции, и дело кончается i/o error.

debugger ★★ ()
Ответ на: комментарий от Deleted

Должен вызываться диалог SAF, поддержка в syncthing должна быть.

Я не знаю кто такой SAF, про Syncthing уже дважды написал: если синхронизируемый каталог во внутренней памяти — в моём случае /storage/emulated/0/... — то всё ништяк, но если каталог на SD карточке — в моём случае /storage/0000-000/... — то Syncthing писать туда не умеет. Читать — пожалуйста, но мне нужно именно писать.

debugger ★★ ()
Ответ на: комментарий от debugger

Порылся в гите, оказывается есть два клиента syncthing. Один написан на го, другой на яве. Тот который на го - не умеет в SAF, может писать на флешку только при наличии рута.

Deleted ()
Ответ на: комментарий от anti_win

Если ты имел ввиду simple-mtp… Примонтировать смартфон можно, и даже rsync работает… но результаты мне не нравятся.

Если запустить rsync два раза, я бы ожидал, что второй раз он ничего копировать не будет. Однако, в случае с каталогом примотированном simple-mtp результат двух запусков rsync вот такой:

-rw-r--r--. 1 vdb vdb 4343808 May 10 23:27 '01. Розовый след на белой дороге.mp3'
-rw-r--r--. 1 vdb vdb 4343808 May 10 23:27 '01. Розовый след на белой дороге.mp3'
-rw-r--r--. 1 vdb vdb 3293184 May 10 23:27 '02. Шейк (к 70-летию СССР).mp3'
-rw-r--r--. 1 vdb vdb 3293184 May 10 23:27 '02. Шейк (к 70-летию СССР).mp3'
-rw-r--r--. 1 vdb vdb 4071424 May 10 23:27 '03. Звезда микрорайона.mp3'
-rw-r--r--. 1 vdb vdb 4071424 May 10 23:27 '03. Звезда микрорайона.mp3'
...
-rw-r--r--. 1 vdb vdb 1294790 May 10 23:27  cover.jpg
-rw-r--r--. 1 vdb vdb 1294790 May 10 23:27  cover.jpg

Я бы сказал, неожиданный. Если сделать unount и примонтирвать снова, то получится:

-rw-r--r--. 1 vdb vdb 4343808 May 10 23:26 '01. Розовый след на белой дороге.mp3'
-rw-r--r--. 1 vdb vdb 4343808 May 10 23:27 '.01. Розовый след на белой дороге.mp3.fFPtF4'
-rw-r--r--. 1 vdb vdb 3293184 May 10 23:26 '02. Шейк (к 70-летию СССР).mp3'
-rw-r--r--. 1 vdb vdb 3293184 May 10 23:27 '.02. Шейк (к 70-летию СССР).mp3.3BGk73'
-rw-r--r--. 1 vdb vdb 4071424 May 10 23:26 '03. Звезда микрорайона.mp3'
-rw-r--r--. 1 vdb vdb 4071424 May 10 23:27 '.03. Звезда микрорайона.mp3.qOa1q3'
...
-rw-r--r--. 1 vdb vdb 1294790 May 10 23:26  cover.jpg
-rw-r--r--. 1 vdb vdb 1294790 May 10 23:27  .cover.jpg.NouLI3

Каждый новый запуск rsync плодит эти скрытые файлы.

debugger ★★ ()
Ответ на: комментарий от debugger

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

Медию я не синхронизирую. Просто кидаю на телефон, если кино в дорогу надо или музыку понравившуюся. Иногда бекап музыки скину с телефона и все.

Я раньше любил прогибать изменчивый... воевать с системой, чтоб она делала как мне надо, а не как авторы задумывали) Гугл воюет с файликами с версии 4.4. И либо ты с рутом, либо с тормозным ио в гамаке и на лыжах, либо понимаешь, что есть более интересные вещи в жизни, чем синхронизация файлов)

F457 ★★★ ()
Ответ на: комментарий от Deleted

Порылся в гите, оказывается есть два клиента syncthing. Один написан на го, другой на яве. Тот который на го - не умеет в SAF, может писать на флешку только при наличии рута.

А тот, который на яве — может?

debugger ★★ ()
Ответ на: комментарий от arty_bishop

У меня туда весь хомяк синкается уже больше года. Андроид 9. Ты точно всё разрешения выдал?

У тебя точно хомяк синкается на SD карту? Вот эта бага скоро шетой день рождения праздновать будет.

debugger ★★ ()
Ответ на: комментарий от debugger

Ну, можно считать что я справился. Если учесть, что изменение времени у файлов на фс, примонтированной через mtp невозможно, то вот такая команда работает:

rsync -rluv --del SRC DST

Если оборвать её и запустить заново, то копирование продолжается с того места, на котором оборвали.

Ладно, всем спасибо, вопрос решён.

debugger ★★ ()

Другие ответы не читал, попробуй Syncthing-Fork, там недавно появилась интеграция SAF без которого в современном андроиде нет доступа к карте. Но я не проверял, у меня 256Gb встроенной памяти и никаких карт. Может и в основной ветке уже SAF используется. https://play.google.com/store/apps/details?id=com.github.catfriend1.syncthingandroid

vyazovoi ★★ ()
Ответ на: комментарий от vyazovoi

Пробежался на github, похоже подмержили SAF и в основную ветку, должно работать по идее. SAF это когда ты не прямой путь указываешь, а у тебя появляется диалог открытия файлов андроида, в котором ты явно указываешь что даёшь полный доступ этому приложению к этой папки. Без этого приложение огорожено не только внутренней памятью, а вообще своим контейнером, ЕМНИП. Короче, видимо у тебя другая проблема, сорри.

vyazovoi ★★ ()

Кто как перекидывает файлы с десктопа на телефон

Поставил на телефон primitive ftpd с f-droid. Перед передачей включаю на телефоне, по окончании выключаю. Но это действительно не оч удобно.

dsxl ()

Из удобных вариантов синхронизации посоветую ещё FolderSync Pro. Пользуюсь параллельно с Syncthing (для синхронизации туда, куда не могу поставить Syncthing), могу рекомендовать. Есть и альтернативы, похожие на FolderSync.

vyazovoi ★★ ()
Ответ на: комментарий от debugger

не годится

На самом деле каталог мапится по довольно сложному пути и можно работать с файлами из других приложений. Но нормально ли работает rsync, я не проверял.

Deleted ()
Ответ на: комментарий от F457

Я раньше любил прогибать изменчивый… воевать с системой, чтоб она делала как мне надо, а не как авторы задумывали) Гугл воюет с файликами с версии 4.4. И либо ты с рутом, либо с тормозным ио в гамаке и на лыжах, либо понимаешь, что есть более интересные вещи в жизни, чем синхронизация файлов)

Гугл, воюет, да… но у меня на android 10 (без рутов и вообще каких-либо вмешательств в систему) прекрасно работают Syncthing и FolderSync. Не знаю, может заслуга Huawei. Я ленивый и прогибать не хочу, но с твоим сценарием (приложения облаков) у меня несколько раз были проблемы и я стал пробовать дедовские методы, которые оказались неожиданно рабочими.

vyazovoi ★★ ()
Ответ на: комментарий от vyazovoi

у меня на android 10 (без рутов и вообще каких-либо вмешательств в систему) прекрасно работают Syncthing и FolderSync.

Ты же сам сказал:

у меня 256Gb встроенной памяти и никаких карт.

Поэтому и работают.

А вообще, я пометил тему как решённую.

debugger ★★ ()