nextcloud / nextcloud/server

Representation of file tree replicated to S3 storage, suitable for disaster recovery

Open
#39,765 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage enhancement feature: object storage
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

The S3 storage system relies on the local relational database as a single point of failure for representing the file tree, including file names and their mappings to payload objects in the S3 bucket.

Thus, the resilience of S3 storage for file payloads is offset by any vulnerability in the application and especially database deployment. Database backup is currently essential for disaster recovery, but still extremely clumsy as a solution for extracting file trees or file contents directly from S3 storage.

Requested is periodic updates to S3 storage of a representation of file tree data, sufficient to permit reconstruction of each user's file tree from only the object storage in the bucket.

If the object data would be structured transparently, then recovery by standalone utilities may be feasible, in case administrators need to extract file contents without reconstituting a full deployment of the application. In principle, an object referenced by a single prescribed key may serve as a manifest for the contents of the entire bucket.

The concept opens opportunities for further enhancements, such as complete replication of all site data into an S3 store for purposes of disaster recovery, as well as seamless site migration.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by locating the existing S3 storage and database file-tree handling, then clarify the manifest format, update process, and recovery workflow with maintainers. Done should be a concrete, agreed implementation scope with validation for reconstructing file trees from object storage.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws
Domain
cloud, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.