5 ms·
As a consumer of Android devices, one thing that's super annoying is that all pictures you take with a camera are stored in a single massive folder. When you c
by jakub_g 4y ago
As a consumer of Android devices, one thing that's super annoying is that all pictures you take with a camera are stored in a single massive folder.
When you connect to the device from your computer over USB (which is usually USB 2.0 even if USB-C, except in major 2021+ models), it will take forever to enumerate the files in that folder. Once you start copying, there's big chance it hangs, so you need to disconnect the device, and go through that painful process again.
(I know, I'm oldschool, I don't have automatic cloud backup enabled).
- totetsu 4y agotry adb-sync --reverse /sdcard/DCIM(?) ~/photos.go.here
- dotancohen 4y agoadb-sync has been deprecated, use better-adb-sync instead: https://github.com/SelfAdjointOperator/better-adb-sync https://github.com/SelfAdjointOperator/better-adb-sync
- totetsu 4y agoI saw that but I don't think the command changes as it still says adb-sync in the readme file of that repo you just linked…
- londons_explore 4y agoIsn't that mostly because android devices use the old school "picture transfer protocol" mode, which involves a round trip to the device for every single object in a directory, rather than being able to just retrieve a directory listing in all one request like typical filesystems.
- qa-tari 4y agoThese days it's exclusively MTP as an extension to PTP that can transfer more than pictures, but similar problems with slow directory listings still exist due to the required translation between names and object IDs. Also the protocol does not support multiplexing requests, so you can't copy files while a directory is getting iterated.
- anshorei 4y agoI've always loved how shotwell does it: "YYYY/MM/DD/filename.ext" The only downside has always been that merging your photo libraries when you did two different things can give some funny results. Shotwell will split the events based on the import, but if you browse the files without shotwell or reimport them later you lose that.
- sneak 4y agoAfter 20 years of digital photography, this is the way: YYYY/YYYY-MM/YYYY-MM-DD/YYYY-MM-DD.SHASUM.IMG_NNNN.EXT This lets you keep date metadata on individual files moved or copied out, detect bit rot, etc.
- rr888 4y agoiOS is terrible from windows too. I figured they really dont care as you aren't a good customer.
- MawKKe 4y ago..and always with super helpful naming scheme like IMG_0001.JPG, IMG_0002.JPG, ... that restarts from the lowest unused number after cleaning up phone storage, ensuring you'll have naming collisions in your backup folder
- MaKey 4y agoWhich phones still do that? My Samsung Galaxy S21 uses date and time: YYYYMMDD_HHMMSS.jpg
- sidpatil 4y agoI gave up on USB file transfers off of Android phones for that reason. A faster option is to install an HTTP or FTP server app on the phone, then download the photos through the network.
- stevesimmons 4y agoOr Syncthing
- nine_k 4y agoGetting the images via e.g. Syncthing running on the phone does not seem to encounter this problem. Likely not over USB though, but Wireguard or better Nebula are easy to set up on both your phone and your router / NAS / desktop.
- greatgib 4y agoYes, this is might constant nightmare too! Around 10k photo files Android starts to be painful to use. like app file browser taking huge to show the file list or crashing, and as you said, terrible experience when trying to get files on a computer. This is mostly because of the mtp protocol that is really shitty, supporting only a single channel at a time and having to send the whole list of all files in one time. But also because Android implementation of it is very buggy. I was always stunned that for a dozen years, Google stupidly spend millions in reworking uselessly the UX twenty times but never solved real pmserious usability problems like this one!