Skip to content

feat(Classify): allow specifying user/path #905 - #1225

Open
jirislav wants to merge 1 commit into
nextcloud:mainfrom
jirislav:allow_classify_per_user_and_path
Open

jirislav wants to merge 1 commit into
nextcloud:mainfrom
jirislav:allow_classify_per_user_and_path

Conversation

@jirislav

Copy link
Copy Markdown

Resolves #905.

@github-actions

Copy link
Copy Markdown

Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.

We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.

Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6

Thank you for contributing to Nextcloud and we hope to hear from you soon!

(If you believe you should not receive this message, you can add yourself to the blocklist.)

Comment thread lib/Command/Classify.php
Comment thread lib/Command/Classify.php
];
foreach ($this->storageService->getFilesInMount($mount['storage_id'], $mount['override_root'], $models, $lastFileId) as $file) {

if ($pathMatcher !== null) {

@marcelklehr marcelklehr Jan 7, 2025 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will go through all files of the nextcloud instance even if only a single folder is given via the parameter. If we check the users of the mounts the we got in line 123 we can short circuit mounts that can not be accessed by the user that was requested. I hope that's understandable :) This way we can avoid a lot of needless db queries :)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Short circuit implemented, PTAL 🙏🏼

@Murazaki

Murazaki commented Feb 5, 2025

Copy link
Copy Markdown

This would be very helpful. I wonder if this is safe to use as a patch ? @marcelklehr seems to be saying the code still crawl through all folders, but I guess it's mostly a performance issue ?

@marcelklehr

Copy link
Copy Markdown
Member

Yes, it's a performance issue

@marcelklehr

Copy link
Copy Markdown
Member

Hello @jirislav

Thank you for your work. I'd like to invite you to our community talk room where our developers hang out for development-related discussions: https://cloud.nextcloud.com/call/xs25tz5y Also, hit me up if you want a guest account for that nextcloud instance. Would you be up for implementing the changes necessary for this PR?

@jirislav

Copy link
Copy Markdown
Author

Hello @marcelklehr! Thanks for the review

Yes, it's a performance issue

I was also aware of needlessly traversing the DB when I was writing this, but I also figured that it is crawling only through the metadata, not the files themselves, so it doesn't have much impact. Also, I have a single-user Nextcloud instance.

Would you be up for implementing the changes necessary for this PR?

I definitely would, if I had spare time, but I don't have it currently. Could you or someone else take it from here please? My main goal was to limit classification only to specific paths, because I have few TB of data in my instance, but only hundreds of GB of files I actually needed to classify. I achieved this with this PR, so it is very low on my priority list.

@jirislav
jirislav force-pushed the allow_classify_per_user_and_path branch from 95a4686 to c3aee56 Compare April 24, 2026 16:32
Signed-off-by: Jiří Kozlovský <jirislav@users.noreply.github.com>
@jirislav
jirislav force-pushed the allow_classify_per_user_and_path branch from c3aee56 to b1f4994 Compare April 24, 2026 16:34
@jirislav
jirislav requested a review from marcelklehr April 24, 2026 16:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

3 participants