You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As a follow up of #8291 which was implemented with cs3org/reva#4491 we should move the filename collision detection and renaming to the CS3 storage provider. Currently, only uploads via ocdav will rename files. Direct CS3 and dataprovider calls would still overwrite the file.
In order to solve this the logic should bove behind the CS3 api. Putting it into storage drivers would mein they have to reimplement it every time. So the correct place IMO is the storage provider.
However, I also think the storage provider should do far more than what it currently does. We should move a lot of business logic from decomposedfs to the storage provider. By extracting different storage aspects like Tree, Node, Lookup and others from decomposedfs we can make them reusable. Every storage first has to look up the Node for a given reference and then has to check if the user has the correct permissions. These two steps should be implemented like middlewares. Then the storage drivers will become less repetitive. Currently, every Storage interface implementation starts with some wrap/unwrap/lookup magic and then a permission check.
Furthermore, upstream CS3 extracted a space manager from the storageprovider api, which also affects what storage drivers need to implement.
So, a few things need to settle down before we can move the logic to a better place. Until then this issue needs to be kept open.
The text was updated successfully, but these errors were encountered:
As a follow up of #8291 which was implemented with cs3org/reva#4491 we should move the filename collision detection and renaming to the CS3 storage provider. Currently, only uploads via ocdav will rename files. Direct CS3 and dataprovider calls would still overwrite the file.
In order to solve this the logic should bove behind the CS3 api. Putting it into storage drivers would mein they have to reimplement it every time. So the correct place IMO is the storage provider.
However, I also think the storage provider should do far more than what it currently does. We should move a lot of business logic from decomposedfs to the storage provider. By extracting different storage aspects like Tree, Node, Lookup and others from decomposedfs we can make them reusable. Every storage first has to look up the Node for a given reference and then has to check if the user has the correct permissions. These two steps should be implemented like middlewares. Then the storage drivers will become less repetitive. Currently, every Storage interface implementation starts with some wrap/unwrap/lookup magic and then a permission check.
Furthermore, upstream CS3 extracted a space manager from the storageprovider api, which also affects what storage drivers need to implement.
So, a few things need to settle down before we can move the logic to a better place. Until then this issue needs to be kept open.
The text was updated successfully, but these errors were encountered: