Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This is the specification of the command set for Synapse clients.  The goal is to align the command sets for clients in different languages to ease users' transitions between languages.  Additionally we define the organization of the file cache so that various clients arrange local copies of file consistently. 

Table of Contents

Synapse File Management

To motivate the design of the client side cache and file manipulation commands, we review file management in Synapse:  Synapse tracks the shared location of the files it stores (e.g. the location in Amazon S3 or some other web-accessible location) and also the file's MD5 hash.  While Synapse records a file's name, it does not know the location of the file when downloaded by any user.  The client has a notion of a File object (defined below).  This object has a slot for the ID of the File object in Synapse and also has a slot for the local file handle.  When the client moves a file from the local machine to Synapse (via the "synStore" command, defined below), the file is uploaded from the local location to Synapse.  When the client retrieves a File (via the "synGet" command, defined below) it may specify the local file handle to which the file is downloaded, or allow the client to place in a default location.  With this understanding, we can discuss how the clients cache files.

...