Upload-Only für Nutzer (oder Automatisches Verschieben)

Hallo Zusammen,
Ich würde mich über ein paar Ideen/Anregungen zu folgendem Sachverhalt freuen.

Soll:
User sollen Dateien nur für eine bestimmte Gruppe (z.B. “team”) freigegeben hochladen können. Private Dateiablagen sollen nicht möglich sein. Dabei sollen die Inhalte der anderen User möglichst nicht sichtbar sein. Über neue Uploads sollen die User der Gruppe “team” benachrichtigt werden.

Ist:
In meiner NC können sich User via Sociallogin anmelden, damit ich nicht jeden neuen User per Hand anlegen muss. Auch werden hierbei bestimmte Gruppen von dem OAuth-Server übertragen und ggf. angelegt. Default Quota ist auf 0B gelegt und den Usern der Standardgruppe (welche von Sociallogin allen via OAuth erstellten Usern gesetzt wird) ist ein “Uploads”-Ordner freigegeben. In diesem müssen die Nutzer selbst einen Ordner mit ihrem Namen erstellen und in diesem Dateien hochladen. Über einen neu erstellten Ordner bekomme ich eine Benachrichtigung (Flow mit automated tagging).

Am besten wäre es, wenn z.B. die User in ihrem Standardverzeichnis Dateien hochladen und diese zB. täglich in einen Ordner des teams verschoben werden. Hierzu konnte ich jedoch nichts finden, außer einen cron und anschließendem occ scan, wobei ich das gerne direkt via Nextcloud handhaben lassen würde.

Hat jemand Ideen/Vorschläge, wie das besser umzusetzen ist? Ich möchte von Absoluten DAUs ausgehen und niemand soll die Dateien von anderen sehen können (außer das Team).

Grüße!

hallo @maddingamer ich bin nicht sicher ob ich deine Anforderung richtig verstehe, nach meinem Verständnis sollte deine Lösung mit 0MB Quota in Kombination mit Group Folders App genau das gewünschte Verhalten mitbringen. über neue und geänderte Dateien wird man über Activity informiert (für Group Folder muss noch ein Tweak angewendet werden damit es auch für durch andere Benutzer geänderte Dateien funktioniert)

Im Grunde genommen habe ich es aktuell genau so (nur dass ich einen shared folder statt group folder nutze). Nur möchte ich gerne dass Nutzer A nicht sieht was Nutzer B in dem Upload-Ordner hochgeladen hat. Aber das Team soll die natürlich alle sehen können. Klar könnte ich für jede/n einen Ordner erstellen, aber da es viele verschiedene mögliche Nutzer gibt, möchte ich alles automatisch haben…

Wenn ich das richtig verstehe dient der individuelle Upload Ordner nur als Zwischenspeicher. Wenn deine Benutzer Mitglieder einer Gruppe sind und damit Schreibrechte im Group Folder haben, entfällt dieser Schritt und sie können Dateien direkt in ihrem Team Ordner erstellen - andere Gruppen haben keinen Zugriff.

Ich glaube meine Gegebenheiten habe ich nicht konkret genug erläutert.

Benutzer user-1 bis user-n können sich automatisch via Sociallogin registrieren und anmelden
Dabei erhalten alle die Gruppe automatic_user

Es gibt 3 manuell Angelegte User: manager-1 bis manager-3
Diese sind Mitglied der Gruppe team

Alle User der Gruppe automatic_user sollen der Gruppe team Dateien zur Verfügung stellen können. Dabei sollen die User innerhalb der Gruppe automatic_user nicht die Inhalte der anderen User aus automatic_user sehen können.

Eventuell ist File Drop etwas für dich. Damit kannst du auch die Accounts der user-1 bis -n sparen. Du kannst einfach eine Freigabe (auch einen pro “Zulieferer”) definieren, wo man Daten ablegen kann ohne dass man die Daten anschliessend manipulieren kann… Wenn das auch nicht die Lösung ist, musst du dein Business Case besser beschreiben (nicht deine aktuelle Implementierung und die Probleme, sondern was du erreichen möchtest - bzw was würdest du machen wenn du alles anstellen könntest) - dann kann das Forum kreativ werden.

Danke für deine Rückmeldung.
FileDrop ist auch interessant, aber dann müsste ich für jeden User einen Share anlegen, wobei ich möglichst alles automatisiert haben möchte.

Hier einmal meine Vorstellung, was ich konkret brauche/mir wünsche:
Eine wechselnde Zahl an Personen soll mir und 2 weiteren Personen Dateien zur Verfügung stellen. Dabei sollen die Personen, welche Dateien hochladen, maximal ihre eigenen sehen, oder im Idealfall nach dem Upload quasi nix mehr davon sehen. Außerdem soll deutlich sein, von wem die Dateien stammen (z.B. Ordner oder Tag mit Namen der Person, die die Datei hochgeladen hat). Anschließend bekommen ich und die 2 weiteren Personen aus dem “Team” eine Benachrichtung/E-Mail, dass neue Dateien hochgeladen wurden (Wenn eine Person 100 Fotos auf einmal hochlädt, soll hier natürlich nur eine Benachrichtigung/E-Mail kommen).

Weiterhin sollen vereinzelt Ordner an bestimmte Personen bzw. Gruppen zur Ansicht freigegeben werden können.

Für mich bzw. “das Team” soll möglichst geringer Aufwand aufkommen, d.h. es soll bis zum “Wegsortieren” der Dateien alles möglichst automatisiert ablaufen. Hierzu steht mir ein Server, welcher OAuth2 unterstützt und wo alle in Frage kommenden Personen bereits ein Profil mit hinterlegten Gruppen haben, zur Verfügung.

Die Personen, welche Dateien zur Verfügung stellen, sollen keine privaten Dateien ablegen können.

Ich bin gespannt auf Vorschläge, vielen Dank!

Ganz so wie du dir das vorstellst, wird es warscheinlich nicht funktionieren. Zumindest nicht “out of the box”

Du wirst nicht darum herumkommen, diese Personen irgendwie zu managen. Wenn du ihnen keinen vollwertigen Account zu Verfügung stellen willst, wäre vielleicht die Guests App noch etwas was du für deinen Workflow mit diesen Personen nutzen könntest.

https://apps.nextcloud.com/apps/guests

Dann wirst du um separate Shares pro Person nicht herumkommen.

Nicht möglich bei normalen Shares, ausser du “unsharest” den Ordner oder verschiebst die Dateien weg. Filedrop kommt dieser Anforderung am nächsten.

Nachdem sie aus dem “Upload”-Folder weg verschoben wurden oder vorher? Vorher kann sie nur derjenige “weiterteilen”, welcher den Upload-Folder freigegeben hat. Nach dem die Daten wegkopiert wurden, kann wer immer der Besitzer des Ordners ist, in den die Dateien verschoben wurden, diesen weiterteilen,

Evtl. kannst du damit den Grad der Automatisierung erhöhen:

https://nextcloud.com/blog/nextcloud-flow-makes-it-easy-to-automate-actions-and-workflows/

Wenn sie einen “vollwertigen” Account haben, kannst du die Quota des Accounts auf 0KB setzten, oder alternativ die schon erwähnte Guests App verwenden.

Fazit:

Mit den Möglichkeiten die @wwe schon genannt (eingebaute Filesharing Möglichkeiten, Groupfolders, File Drop), und der von mir genannten Guest App, sind glaube ich so ziemlich alle Möglichkeiten ausgeschöpft, die Nextcloud “out of the box” bietet, um Files, Sharing, User und Berechtigungen zu handeln, und mit Flow gibt es ergänzend dazu eine Möglichkeit gewisse Abläufe zu automatisieren.

Ich denke du wirst nicht darum herumkommen ein paar dieser Möglichkeiten zu kombinieren und eine für dich möglichst passende Lösung selbst zusammenzubauen. Ob es komplett automatisiert möglich ist deine Anforderungen abzudecken, weiss ich nicht. Aber mit der Guest App und/oder Filedrop und etwas manueller Arbeit, die du dann evtl. mit Flow noch bis zu einem gewissen Grad automatisieren könntest, wirst du dem zumindest nahe kommen können.

wie gesagt, das lässt sich eigentlich über die OAuth2-Anbindung sehr entspannt regeln…

bei Filedrop wäre es dann immer ein öffentlicher Link, der ohne User funktioniert, richtig?

nein genau, erst danach. das habe ich nur der Vollständigkeit halber als Anforderung aufgeführt. Ein Mitglied des Teams sortiert die Dateien weg und bestimmte User/Gruppen bekommen z.B. den übergeordneten Ordner, der alle Dateien ihrer Gruppe repräsentiert, geteilt.

Genau, das ist der Weg den ich diesbezüglich bisher auch gehe; Default Quota auf 0B.

Richtig. Und der Link kann zusätzlich auch noch Passwortgeschützt werden. Das Problem dabei wäre dann halt, dass der Upload “anonym” ist, sprich falls mehere User denselben Link nutzen, weisst du nicht von wem welches Files hochgeladen wurde. Das könntest du aber natürlich umgehen, indem du pro Person / Kunde einen eigenen Filedrop Order definierst in der Nextcloud.

@maddingamer
Ich wollte noch mal auf die Guests App verweisen auch wenn es oben schon angesprochen wurde.

In diesen Odern kann man dann auch Upload- und Download je Benutzer freigeben.
Bei Bedarf kann man auch für jeden Gast einen eigenen Ordner anlegen.

Bei Guests hat der Gast kein Zugriff auf den obersten Ordner.
Aber wer was hochladen darf, kann immer private Daten hochladen.
Das kannst du gar nicht verhindern.

Könnte vielleicht mit der Nextcloud-App “Workflow external scripts” funktionieren:

(im Appstore unter “Organisation”)

um die Lösungsansätze kurz zusammenzufassen:

  1. pesönliche Accounts (“richtige” oder guests) - damit die “Besucher” ihre Files nicht gegenseitig sehen können muss der Admin jeden individuell auf einen Ordner berechtigen
  2. File-Drop - hier muss der Admin zuerst einen Ordner pro Benutzer freigeben (kann durch Passwort “individualisiert” werden)

je nach weiteren Anforderungen, Gegebenheiten oder Benutzer Erfahrung die eine oder die andere Variante (oder nach Bedarf beide) verwendet werden, aber ganz ohne Admin Aktion kann man die Wünsche wohl nicht umsetzen. Wenn die Besucher regelmässig kommen ist die 1. Variante wohl bequemer, für einmalige Besucher eher die 2.