informatics-isi-edu / hatrac

Simple object storage for collaborations
Apache License 2.0
3 stars 1 forks source link

Add logical object renaming feature #71

Open karlcz opened 6 months ago

karlcz commented 6 months ago

a new POST /path/to/new/object handler takes a JSON command description:

  {
    "command": "rename_from",
    "source_name": "/path/to/orig/object",
    "versions": [ "version1", "version2", ..],
    "copy_acls": true
  }

and mirrors version records under the new object name, implemented as a logical rename (no bulk data copy/movement). The versions field is optional and it processes all versions by default. The copy_acls field is optional and defaults to false, where only basic ownership is set as in normal version uploads.

The implementation uses version.aux fields:

The old record links to the new one and only the new one is processed to serve content. During retrieval, the new record passes the original hatrac name information and aux metadata into the backend storage module.