Versions Compared

Key

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

...

CommandcommentsR SyntaxPython SyntaxCommand Line Syntax
1 – Basic Level    
Create a Synapse file handle in memory, specifying the path to the file in the local file system, the name in Synapse, and the Folder in Synapse.  This step 'stages' a file to be sent to Synapse.The specified file doesn't move or get copied at this time.File(path="/path/to/file", name="foo", parentId="syn101")  
Create a Synapse file handle in memory which will be a serialized version of an in-memory object.

The object is not serialized at this time. 

(We are hoping people will like calling the object a File, even though it takes an in-memory object as a parameter.)

File(obj=<obj ref>, name="foo", parentId="syn101")  
TODO:  File which is a URL, not be uploaded to Synapse, just linked.    
Create a Synapse Record in memory, specifying the paths to one or more files in the local file system, the name in Synapse, and the Folder in Synapse.  This step 'stages' a Record to be sent to Synapse.

Files aren't moved or copied at this time.

TODO:  Should the files instead be set like attributes, using synSet()?

Record(paths=list("path1", "path2"), name="foo", parentId="syn101")Record(paths=list("path1", "path2"), name="foo", parentId="syn101") 
Create a Folder or Project in memory. 

Folder(name="foo", parentId="syn101")

Project(name="foo", parentId="syn101")

  
Set an entity's attribute (property or annotation) in memory.  Client first checks properties, then goes to annotations; setting to NULL deletes it synSet(entity, name)<-value  
Gets an entity's attribute value (property or annotation) from the object already in memory.  If value is not set then NULL is returned. (TODO:  Do we need an isSet(entity, name) method?)synGetAnnotationOrProperty(entity, name) (We obviously need a better name here.)  
Create or update an entity (File, Folder, etc.) in Synapse.  May also specify (1) whether a name collision in an attempted 'create' should become an 'update' and (2) whether to 'force' a new version to be created. synStore(entity, createOrUpdate=T, forceVersion=T)  
Get an entity (file, folder, etc.) from the Synapse server, with its attributes (properties, annotations) and, optionally, with its associated file(s). synGet(id, version, downloadFile=T, load=T)synapse.get(id, version, downloadFile=True, load=True)synapse get ID -v NUMBER
  synGet(entity, downloadFile=T, load=T)  
Add a file to a Record entityTODO: Can this be combined with synSet(record, ...)?synAdd(record)<-"path/to/file"  
     
     
2 – Power User Level    
TODO: 'mark dirty'  A client command to mark a file associated with an entity as having been modified locally.    
3 – Web API Level    
Execute GET request synRestGET(endpoint, uri)  
Execute POST request synRestPOST(endpoint, uri, body)  
Execute PUT request synRestPUT(endpoint, uri, body)  
Execute DELETE request synRestDELETE(endpoint, uri)  

 

Cache Design Principles

The function and design principles of the client-side file cache need to be made explicit.  The options are below.

...