How directory and files are internally stored in owncloud

oc-internals

#1

Hi All,

I am from internal IT department and my organisation have following requirement ,

  • Ability to browse through files using web based file manager.
  • Ability for the users to upload and download file from the file server using Web Browser interface.
  • Ability to integrate files from the file server in my organisation internal IT application. For example ,
    ability to select file from the file server in the internal IT application.

Currently, my organisation using FTP server to serve data from the NFS share to user. We have home directory and common share directory for the users. Access control for common share directory is using POSIX groups.

I am just curious on some of the internal implementation of owncloud ,

  • How the directory structure is maintained in owncloud , does it rely on underlying POSIX filesystem for directory structure or else does it maintain directory structure in SQL table ??? I had a look at dropbox implementation , they have controller sever which provides the directory structure , authentication and access control and dropbox uses Amazon S3 to store the actual content. [Dropbox reference - http://eprints.eemcs.utwente.nl/22286/01/imc140-drago.pdf ]

  • Does owncloud depend on the Apache WebDAV internally for file management ??

  • How owncloud is different different filebrowser like elFinder etc.. I see they also provide similar functionality.

Thanks,
Anthony


#2

Hi,

the directory structure is handled on file system level as well in the database.

No, it used the PHP library "SabreDAV" for everything *DAV related.


#3

Thanks RealRacor..

I have some more query ,
- why owncloud maintains directory structure information in database when it is already present in the filesystem.
- I was looking for reference to understand the internal design of the owncloud like what is stored in database and what is
stored in filesystem. I had a look at the github but did not find any high level design.

Thanks,
Anthony


#4

file system -> actual data/files
database -> metadata of this files

You need to store the metadata somewhere and the file system is probably just to slow or something like that

Everything available is documented at https://doc.owncloud.org/server/9.1/developer_manual/. If you can't find it there it most likely doesn't exist and you need to dig into the code itself.


#5

Thanks RealRancor.. I will try to setup owncloud development environment and try digging into the code.

Thanks,
Anthony