immich-app / immich

High performance self-hosted photo and video management solution.
https://immich.app
GNU Affero General Public License v3.0
42.57k stars 2.08k forks source link

Support user defined storage location/structure #34

Closed wjbeckett closed 1 year ago

wjbeckett commented 2 years ago

I mentioned this on Reddit, but the user should be able to define how images are stored on the file system. This will not only allow for the user to choose how the images are named, but should allow Immich to index existing images.

Let's say I have an existing photos library where the photos are structured like this: Photos | |-> 2022 |-> 01 |-> filename.ext

Immich should respect the existing file structure and index the existing images.

While importing new photos, it should ask the user how the photos should be stored allowing the user to define the file structure above so that newly imported photos are placed in the correct place on the existing file system in the users defined folder structure.

Ideally, we should be able to define the filename pattern as well. Mine is currently date_timestamp_number.ext. for example, 2022-02-23-203109-001.jpeg

alextran1502 commented 2 years ago

Thank you for your suggestion. I will consider this when the mobile app is stable and all the basic features are ironed out

wjbeckett commented 2 years ago

So, I am the one who made the request for the external importer but you may be misinterpreting what I have said. What I mean is this - most people in this sub will already have a bunch of photos on their servers/NAS stored in a way they prefer on the file system, for me, it’s a directory called photos and then sub folders as years (2022, 2021, 2020, etc) and then sub folders within them as months, and then the image files within that.

This is how I want my photos to be arranged and I don’t want another app changing that. What I would like is the app to accept my input as to how I want the images stored on the server/NAS and then move them there for me.

So, what Immich should be doing, is collecting the photos and videos off my device, grab the metadata along with that and pushing them to my server to sit in an “import” directory (or something similar). Then, the server app should scan that directory for any files, tag them based on the metadata, perform facial recognition, etc and then move the photos to their final testing place in my photo library that already exists on my file system and in the naming convention I expect them to be in.

This way Immich won’t just be an uploading too, it will be an image management app as well as a backup tool for my device images and a way to view my images on my server.

This is sort of the way Photoprism and similar app/servers work.

ippocratis commented 2 years ago

I agree with the year/month/day folder structure but I don't want to push the dev Its his app after all I see that immich is crazy fast in loading and displaying immages appar to how fast google photos loads cloud images. That crazy fast So I really want this app to grow so I can use it. The truth is that if the feature to add to immich server photos already on the server machine is not somehow imlemented it is not going to be any usable

nijhawank commented 2 years ago

+1. I also have my existing photos in year/month/photo.ext structure that I want to be able to access via Immich. It would be a good idea if Immich simply indexes them in-place without requiring them to be imported/duplicated into another location.

JamesTeague commented 2 years ago

Adding to the request, this would be great. It's something that I think a lot of people want, being autonomy over their server file structure. This will allow other things to play nice with the files too, I believe. This is something I'd personally love to see in here and I think many others would to.

Akruidenberg commented 2 years ago

+1 for me.

alextran1502 commented 2 years ago

+1. I also have my existing photos in year/month/photo.ext structure that I want to be able to access via Immich. It would be a good idea if Immich simply indexes them in-place without requiring them to be imported/duplicated into another location.

Noted, this is a different scope of the project though. I will let you know when I implement a CLI tool for this.

mokahless commented 2 years ago

Ah I was just starting to investigate the best way to expose my smb share to immich in its container and came across this thread. I actually don't care about adding photos through immich and just want it to add photos I've put on my smb share automatically, without duplicating them or renaming them or moving them.

Since it hasn't been mentioned yet, I'll mention that photoprism refers to this as "indexing" for original directories.

wiseindy commented 2 years ago

+1 Would love to be able to use my existing photo library with Immich

reejosamuel commented 2 years ago

+1 to this.

Ewalda commented 1 year ago

+1 SynologyPhotos (NAS) use following similar file structure for standard backup mobile devices:

MobileBackup///month The device name is e.g. iphone name which the user give to his phone e.g. "Toms Iphone". In Immich is currently a cryptic Id a name would be better.

Parallel to that the user can create free defined other folders, which are also included in the photo database. And inside this folders also free defined sub folders are possible. This structure is necessary for sorting a lot of images to several events.

Additional the original date and time of the image and the movies is set to the modified date and time of the file system. Immich uses the upload time in the file system. Additional it either uses the original name of the mobile device or it can be selected to rename the filename to IMG_yyyyMMdd_HHmmss (If there is already a file with this name it will be renames by adding _1 ...) <= This naming is often used by mobile phones and cameras for photos and videos. Immich uses a random UUID (asset-upload.config.ts fileNameUUID = randomUUID()).

It would be very good if Immich can do it similar. Immich mobile backup is much faster than synology photos. (I believe also other things are faster! Very Good! But I have not yet so much photos in Immich.)

All that things are very essential if the database crashes (what happens to me on the synology database). It is possible to rebuild the database by this file system structure! Also for files (videos) with no Exif Data! Also the sorted directory structure is still there, albums are only stored in the database.

We have above 1 000 000 photos currently sorted by this way.

Additional information to albums: Only a flat album structure is not enough to sort so many photos at least sub albums should be supported (Synology photos also don't support sub albums, therefore and because of database problems I sort it in the directories. But because of avoiding duplicates, albums would be better! )

fivestones commented 1 year ago

I'd like to have this feature too

eckebusch commented 1 year ago

+1 to this

Txxicer commented 1 year ago

+1

zkhan93 commented 1 year ago

+1 to this feature as it also makes the app more "safe". love the app thank you so much!

ggantn commented 1 year ago

+1 for me.

Spectre5 commented 1 year ago

I'd also love the ability to just index an existing directory tree. I have my photos already organized in a meticulous way within various subdirectories that are meaningful for me. I'd like to load this share/directory as read-only in Immich to be sure nothing in it changes.

DawidPietrykowski commented 1 year ago

I also agree that such feature would be a great addition to the app. For me it's the only thing holding me back from ditching Plex, the loading/viewing speed of Immich could make it a great photo gallery/browser for a NAS.

kenzot11 commented 1 year ago

+1 for me

nijhawank commented 1 year ago

I assume this only stores photos uploaded via Immich to be stored in the specified folder/file structure. But this does not indexes photos in existing folder (not uploaded via Immich) and makes them available via Immich, is the understanding correct?

alextran1502 commented 1 year ago

I assume this only stores photos uploaded via Immich to be stored in the specified folder/file structure. But this does not indexes photos in existing folder (not uploaded via Immich) and makes them available via Immich, is the understanding correct?

@nijhawank that is correct, the scanning feature is not yet implemented. You can find a more detailed discussion here #1006

arnoudius commented 1 year ago

+1, would be nice if this could be supported

amokster88 commented 1 year ago

+1, i would love this and I just deployed this and I am loving this. Can't thank you enough Devs. Keep it up, I hope more people start supporting this project.

poisonborz commented 1 year ago

+1, even though I'm in awe of what Immich became , for now this is a dealbreaker for me. I already have an established photo structure which I expose through multiple services. I'd only share this folder as read only with any container, as I wouldn't risk them corrupting or modifying them in a way I don't expect. Metadata/thumbnails should be stored separately. Good (even though different scope) examples for this behaviour would be PiGallery 2 or Nextcloud.

charles-997 commented 1 year ago

As an update, this feature has been added. See docs here https://immich.app/docs/features/read-only-gallery

zilexa commented 1 year ago

Perhaps allow to set a global default of the "External Path", relative to the user path. Like %userfiles%/%username%/Pictures Each user would have their photos in a subfolder inside their userfolder called Pictures (or Photos or Albums or whatever).

jrasm91 commented 1 year ago

You can already do this by prefixing the storage template with Pictures and by setting up your volume mounts for the external path relative to the upload location.