Share a File or Folder in an ObjectStore Using Path (REST API: POST)

Use this operation to share a specific file or folder in an ObjectStore based on the file or folder path.

Request

Syntax
POST <webservice>/contentstore/action/share HTTP/1.1
 Host: <host name>
 Accept: application/xml
 Authtoken: <authentication token>
 Content-type: application/xml
 <App_ShareInfo status="">
     <browseInfo> 
         <paths path="" />
        <emailInfo dontSendEmail="0" emailMessage=""/> 
        <password isSet="" password=""/> 
    </browseInfo>
     <shareFolder syncWebFolderName=""/>
     <sharedTo permission="1" userType="1"> 
         <user userName=""/> 
     </sharedTo>  
     <sharedTo email="" permission="1" userType="2"/>
     <sharedTo permission="2" userType="3"> 
         <group userGroupName=""/> 
     </sharedTo>
     <sharedTo email="" permission="1" userType="4"> 
         <externalGroup externalGroupName=""/> 
     </sharedTo> 
     <sharedTo permission="1" userType="1"> 
         <user userName=""/> 
     </sharedTo>
 </App_ShareInfo>

where <webservice> is the root path used to route the API requests to the Web Server.

For more information, see Available Web Services for REST API.

Request Headers

Name

Description

Host

The host name of the Web Server or Web Console used in the API request.

Accept

The format of the response. Valid values are: application/xml or application/json.

Authtoken

The authentication token received after successfully logging on. For details on receiving an authentication token, see Authentication.

Request Body

An XML element is required. See Syntax. The following table displays the parameters for the request body.

Name

Description

Element

Parent Element

status

Specifies whether the share will be a public share or a private share. Valid values are:

  • 1 - public link with view permissions

  • 4 - public link with edit permissions

  • 0 - private share

App_ShareInfo

path

The path to the file or folder to be shared. Specify the path relative from the root.

paths

browseInfo

syncWebFolderName

The name assigned to the share.

shareFolder

App_ShareInfo

dontSendEmail

Specifies whether an email notification is sent to the shared users. Valid values are:

  • 1- do not send email

  • 0 - send email

emailInfo

browseInfo

emailMessage

The optional message to include in the email notification for the shared users.

emailInfo

browseInfo

isSet

Applies only to public links. Specifies if the public link must be password protected. To enable password, set the value to 1.

password

browseInfo

password

The password value in base64 format. Required only if the isSet parameter is 1.

password

browseInfo

permission

Applies only to private shares. The access permissions assigned to the shared user or user group. Valid values are:

  • 1 - view

  • 2 - view and edit

sharedTo

App_ShareInfo

userType

Applies only to private shares. Specifies the type of entity to which the file or folder is being shared. Valid values are:

  • 1 - user

  • 2 - email address

  • 3 - CommCell user group

  • 4 - external AD user group

sharedTo

App_ShareInfo

userName

Applies only to private shares. The user login name to which the file or folder is being shared. Required only if the userType is 1.

user

sharedTo

email

Applies only to private shares. The email address to which the file or folder will be shared. Required only if the userType is 2.

sharedTo

App_ShareInfo

userGroupName

Applies only to private shares. The CommCell user group name to which the file or folder will be shared. Required only if the userType is 3.

group

sharedTo

externalGroupname

Applies only to private shares. The external AD user group name to which the file or folder will be shared. Required only if the userType is 4.

externalGroup

sharedTo

Response

Response Parameters

Parameter

Description

Element

file

'file=1' indicates the shared item is a file.

App_SharedFoldersResp

directory

'directory=1' indicates the request item is a folder.

App_SharedFoldersResp

path

GUID of the shared file or folder.

App_SharedFoldersResp

dontSendEmail

Specifies whether an email notification is sent to the shared users. Valid values are:

  • 1 - do not send email

  • 0 - send email

App_SharedFoldersResp

emailMessage

The optional message to include in the email notification for the shared users.

App_SharedFoldersResp

syncWebFolderId

The ID assigned to the share.

App_SharedFoldersResp

syncWebFolderName

The name assigned to the share.

App_SharedFoldersResp

Examples

Sample Request

To create a private share:

POST <webservice>/contentstore/action/share HTTP/1.1
 Host: client1.mydomain.com
 Accept: application/xml
 Authtoken: QSDK 38568012f4d1e8ee1841d283a47aa3ba78e124ea58354b5fc6
 0f4dab8a63347d05cf5552484dafda3bfa4c5db84e580b1cb37bcf8e65b39f7f
 8549a443e6f78a2c7be3f31b3d845e24776c835e498e8e883bb40c46bd15af4f
 40ca94e823acedcdd4e9659e74b34a07a85c4586cd2ed914b6dce015874783ef7
 68fda78183a4208930954a377f66eb56c8b92cexampl4s437a19317ca6ce7f323
 3d5a01aca35dbad93468b833f2cf71010809006a937670adce711ca8be46638e8
 Content-type: application/xml
<App_ShareInfo sharedToOperationType="2" status="0">
     <browseInfo> 
         <paths path="\folder1"
        <emailInfo dontSendEmail="1" emailMessage=""/> 
    </browseInfo>
     <shareFolder syncWebFolderName="fromlaptop"/>
     <sharedTo permission="1" userType="1"> 
         <user userName="user1"/> 
     </sharedTo>  
 </App_ShareInfo>

To create a public link with view permissions:

POST <webservice>/contentstore/action/share HTTP/1.1
 Host: client1.mydomain.com
 Accept: application/xml
 Authtoken: QSDK 38568012f4d1e8ee1841d283a47aa3ba78e124ea58354b5fc6
 0f4dab8a63347d05cf5552484dafda3bfa4c5db84e580b1cb37bcf8e65b39f7f
 8549a443e6f78a2c7be3f31b3d845e24776c835e498e8e883bb40c46bd15af4f
 40ca94e823acedcdd4e9659e74b34a07a85c4586cd2ed914b6dce015874783ef7
 68fda78183a4208930954a377f66eb56c8b92cexampl4s437a19317ca6ce7f323
 3d5a01aca35dbad93468b833f2cf71010809006a937670adce711ca8be46638e8
 Content-type: application/xml
 <App_ShareInfo sharedToOperationType="2" status="1"> <browseInfo>  <paths path="\folder1" <emailInfo dontSendEmail="1" emailMessage=""/>  <password isSet="1" password="bXlwYXNzd29yZA=="/> </browseInfo> <shareFolder syncWebFolderName="fromlaptop"/>  
 </App_ShareInfo>
Sample Response
<App_SharedFoldersResp>
     <shareInfo> 
         <browseInfo cloudId="1" edgeClient="1"> 
             <paths directory="1" path="7c4e538afe864e25ae415357aa6fa04e"" /> 
             <emailInfo dontSendEmail="1" emailMessage="" /> 
         </browseInfo> 
         <shareFolder syncWebFolderName="Test" syncWebFolderId="36" /> 
     </shareInfo> 
     <resp errorMessage="" errorCode="0" /> 
 </App_SharedFoldersResp>

Supported Error Codes

Code

Status

Description

400

Bad Request

The request is missing required parameters.

404

Not Found

The specified file or folder does not exist.

409

Conflict

The file or folder is already shared or the specified share name already exists.

The response body will have the shareID of the existing share if the file or folder is already shared. The shareID can be used to update the users/user groups to which the file or folder is already shared. For example:

<App_SharedFoldersResp> <shareInfo> <shareFolder syncWebFolderName="Test" syncWebFolderId="10" /> </shareInfo> <resp errorMessage="" errorCode="409" /> </App_SharedFoldersResp>

Loading...