Skip to content

[Feature] Add OwnCloud as storage provider #9562

@janrudolph

Description

@janrudolph

OwnCloud is an Open Source private cloud software. Like Dropbox it enables file sharing but in a private environment. The scope of this story is to add OwnCloud as additional storage provider for Rocket.Chat.

A team who owns an OwnCloud space can configure, that every file upload in Rocket.Chat is pushed to an OwnCloud server. The files are not stored in the Mongo, S3 or equivalent anymore.

Basic workflow:
A user uploads a file by dropping it into a channel. The file is uploaded to an OwnCloud server. The OwnCloud server returns a link to the file. This link is posted into the channel.

Accpetance criteria:

  • The uploaded file is stored on the Owncloud server. The server credentials (URL, User, Password) can be edited in the Rocket.Chat admin interface.
  • One OwnCloud account can store data from multiple Rocket.Chat installations but the data is not mixed up.
  • Data that is pushed to the OwnCloud server is sorted by the Rocket.Chat server name and the upload location (channel name). The sorting can be implemented by using a folder structure (if so: the folder names should be configurable in the Rocket.Chat admin interface)
  • If a file with the same file name already exists, the file is automatically renamed (e.g. adding random number, date, hash...).
  • When a file has been uploaded, a link to the file is posted into the channel. The link has no expirary date.
  • The link is styled like a default Rocket.Chat data upload.
  • There is no additional security layer (e.g. password) for accessing an uploaded file.
  • When uploading a file, the user agrees to handle the file URL responsibly and that she/he knows the the URL is accessible by any person who knows the URL (display an info text, no checkbox).
  • Basic Rocket.Chat upload settings work with OwnCloud as well.
  • When an user deletes a file in Rocket.Chat, the file is deleted on the OwnCloud server as well.

Possible future Extensions:

  • Allow extra layer of data security: The user is able to set a password for the file which is posted into the channel as well.
  • Add expiray date for file: Users can define an expiray date. The file is not accessable after this date. However the user can edit this date.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions