Feature #3536

Implement a recursive kamaki store upload

Added by Stavros Sachtouris almost 11 years ago. Updated almost 11 years ago.

Status:Closed Start date:04/03/2013
Priority:Medium Due date:
Assignee:Stavros Sachtouris % Done:

100%

Category:kamaki Spent time: -
Target version:v0.8

Description

Now: kamaki store upload uploads only one local file per call.

Desired feature: support uploading a whole directory. Semantics (to initiate the discussion):

kamaki store upload <local file> <container>[:<remote_path>]

- By default, upload only one file, use a flag (e.g. -R) to upload recursively

- In recursive uploads, upload the full directory tree

- All subdirs will be reflected as Pithos directory objects (otherwise, kamaki download won't work). E.g.:

   $ ls -R my_dir
   my_dir/adir/afile
   my_dir/some.file
   $ kamaki store upload -R my_dir my_container
   $ kamaki store list my_container
   my_dir/            DIR
   my_dir/a/          DIR
   my_dir/adir/afile  32MiB
   my_dir/some.file   42MiB
   

- Check everything before uploading

- Default remote path starts from local directory, e.g.
$ kamaki store upload -R /home/user/files/my_dir my_container
will create paths of the form:
my_container:mydir/...
(In kamaki we use the : notation to separate containers from objects)

- May add custom prefices and suffices to remote paths (e.g. --prefix, --suffix). Can also be aplied to single uploads.

- If remote_path is given as an argument, it means "put them in this directory". This remote directory should exist in advance as directory object (same semantics as a bash cp). E.g.:

    $ kamaki store upload -R my_dir my_container:some/path
    Error: Object some/path if container my_container not exists or not a directory
   

- If at least final target path exists on remote container, then the operation is aborted by default. Can be forced with a flag (e.g. -f)

History

#1 Updated by Stavros Sachtouris almost 11 years ago

  • % Done changed from 0 to 70

#2 Updated by Stavros Sachtouris almost 11 years ago

  • Status changed from New to Resolved
  • % Done changed from 70 to 100

#3 Updated by Stavros Sachtouris almost 11 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF