Introduction
This page describes the http api of the ox drive module.
The module drive
is used to synchronize files and folders between server and client, using a server-centric approach to allow an easy implementation on the client-side.
The synchronization is based on checksums for files and folders, differences between the server- and client-side are determined using a three-way comparison of server, client and previously acknowledged file- and directory-versions. The synchronization logic is performed by the server, who instructs the client with a set of actions that should be executed in order to come to a synchronized state.
Therefore, the client takes a snapshot of it's local files and directories, calculates their checksums, and sends them as a list to the server, along with a list of previously acknowledged checksums. The server takes a similar snapshot of the files and directories on the underlying file storages and evaluates which further actions are necessary for synchronization. After executing the server-side actions, the client receives a list of actions that should be executed on the client-side. These steps are repeated until the server-state matches the client-state.
Key concept is that the synchronization works stateless, i.e. it can be interrupted and restarted at any time, following the eventual consistency model.
Entry point for the synchronization is the syncfolders request, where the directories are compared, and further actions are determined by the server, amongst others actions to synchronize the files in a specific directory using the syncfiles request. After executing the actions, the client should send another syncfolders
request to the server and execute the returned actions (if present), or finish the synchronization if there are no more actions to execute. In pseudo-code, the synchronization routine could be implemented as follows:
WHILE TRUE
{
response = SYNCFOLDERS()
IF 0 == response.actions.length
BREAK
ELSE
EXECUTE(response.actions)
}
Basically, it's up to the client how often such a synchronization cycle is initiated. For example, he could start a new synchronization cycle after a fixed interval, if he recognizes that the client directories have changed, or if he is informed that something has changed on the server by an event. It's also up to the client to interrupt the synchronization cycle at any time during execution of the actions and continue later on, however, it's recommended to start a new synchronization cycle each time to avoid possibly outdated actions.
Since API version 8, also a minimized synchronization cycle is available which can be used to synchronize changes within a distinct directory, without transferring the other directory versions in the folder tree. The minimized cycle operates on one directory only, and may directly start with synchronizing the contents using the corresponding syncfiles
-action for the directory. After synchronization of the directory contents is finished, a subsequent request to synchronize the directory itself can then be performed using the special syncfolder
action to acknowledge this directory checksum.
This optimized synchronization routine can be used whenever it is known that there are content changes within a specific directory only, either due to a event from the filesystem on client side, or due to a received push event from the server whose payload points to a certain path. In pseudo-code, this would look like:
WHILE TRUE
{
response = SYNCFILES(<path>)
IF 0 == response.actions.length
EXECUTE(SYNCFOLDER(<path>))
BREAK
ELSE
EXECUTE(response.actions)
}
API
As part of the HTTP API, the basic conventions for exchanging messages described there are also valid for this case, especially the HTTP API - Section: low level protocol and HTTP API - Section: Error handling. Each request against the Drive API assumes a valid server session that is uniquely identified by the session id and the corresponding cookies and are sent with each request. A new session can be created via the HTTP API - Section: Login module).
The root folder plays another important role for the message exchange. The root folder has a unique identifier. It is the parent server folder for the synchronization. All path details for directories and files are relative to this folder. This folder's id is sent with each request. To select the root folder during initial client configuration, the client may get a list of synchronizable folders with the subfolders action.
Subsequently all transferred objects and all possible actions are listed.
File Version
A file in a directory is uniquely identified by its filename and the checksum of its content.
Name | Type | Value |
---|---|---|
name | String | The name of the file, including its extension, e.g. test.doc . |
checksum | String | The MD5 hash of the file, expressed as a lowercase hexadecimal number string, 32 characters long, e.g. f8cacac95379527cd4fa15f0cb782a09. |
Directory Version
A directory is uniquely identified by its full path, relative to the root folder, and the checksum of its content.
Name | Type | Value |
---|---|---|
path | String | The path of the directory, including the directory's name, relative to the root folder, e.g. /sub/test/letters . |
checksum | String | The MD5 hash of the directory, expressed as a lowercase hexadecimal number string, 32 characters long, e.g. f8cacac95379527cd4fa15f0cb782a09 . |
Note: the checksum of a directory is calculated based on its contents in the following algorithm:
- Build a list containing each file in the directory (not including subfolders or files in subfolders)
- Ensure a lexicographically order in the following way:
- Normalize the filename using the
NFC
normalization form (canonical decomposition, followed by canonical composition) - see http://www.unicode.org/reports/tr15/tr15-23.html for details - Encode the filename to an array of UTF-8 unsigned bytes (array of codepoints)
- Compare the filename (encoded as byte array "fn1") to another one "fn2" using the following comparator algorithm:
- Normalize the filename using the
min_length = MIN(LENGTH(fn1), LENGTH(fn2))
FOR i = 0; i < min_length; i++
{
result = fn1[i] - fn2[i]
IF 0 != result RETURN result
}
RETURN LENGTH(fn1) - LENGTH(fn2)
- Calculate the aggregated MD5 checksum for the directory based on each file in the ordered list:
- Append the file's NFC-normalized (see above) name, encoded as UTF-8 bytes
- Append the file's MD5 checksum string, encoded as UTF-8 bytes
Actions
All actions are encoded in the following format. Depending on the action type, not all properties may be present.
Name | Type | Value |
---|---|---|
action | String | The type of action to execute, currently one of acknowledge , edit , download , upload , remove , sync , error . |
version | Object | The (original) file- or directory-version referenced by the action. |
newVersion | Object | The (new) file- or directory-version referenced by the action. |
path | String | The path to the synchronized folder, relative to the root folder. |
root | String | The corresponding root folder identifier (optional, available since API version 5). |
offset | Number | The requested start offset in bytes for file uploads. |
totalLength | Number | The total length in bytes for file downloads. |
contentType | String | The file's content type for downloads (deprecated, available until API version 2). |
created | Timestamp | The file's creation time (always UTC, not translated into user time). |
modified | Timestamp | The file's last modification time (always UTC, not translated into user time). |
error | Object | The error object in case of synchronization errors. |
quarantine | Boolean | The flag to indicate whether versions need to be excluded from synchronization. |
reset | Boolean | The flag to indicate whether locally stored checksums should be invalidated. |
stop | Boolean | The flag to signal that the client should stop the current synchronization cycle. |
acknowledge | Boolean | The flag to signal if the client should not update it's stored checksums when performing an EDIT action. |
thumbnailLink | String | A direct link to a small thumbnail image of the file if available (deprecated, available until API version 2). |
previewLink | String | A direct link to a medium-sized preview image of the file if available (deprecated, available until API version 2). |
directLink | String | A direct link to the detail view of the file in the web interface (deprecated, available until API version 2). |
directLinkFragments | String | The fragments part of the direct link (deprecated, available until API version 2). |
The following list gives an overview about the used action types:
acknowledge
Acknowledges the successful synchronization of a file- or directory version, i.e., the client should treat the version as synchronized by updating the corresponding entry in its metadata store and including this updated information in all following originalVersions
arrays of the syncfiles
/ syncfolders
actions. Depending on the version
and newVersion
parameters of the action, the following acknowledge operations should be executed (exemplarily for directory versions, file versions are acknowledged in the same way):
Example 1: Acknowledge a first time synchronized directory
The server sends an acknowledge
action where the newly synchronized directory version is encoded in the newVersion
parameter. The client should store the version in his local checksum store and send this version in the originalVersions
array in upcoming syncfolders
requests.
{
"action" : "acknowledge",
"newVersion" : {
"path" : "/",
"checksum" : "d41d8cd98f00b204e9800998ecf8427e"
}
}
Example 2: Acknowledge a synchronized directory after updates
The server sends an acknowledge
action where the previous directory version is encoded in the version
, and the newly synchronized directory in the newVersion
parameter. The client should replace any previously stored entries of the directory version in his local checksum store with the updated version, and send this version in the originalVersions
array in upcoming syncfolders
requests.
{
"action" : "acknowledge",
"newVersion" : {
"path" : "/",
"checksum" : "7bb1f1a550e9b9ab4be8a12246f9d5fb"
},
"version" : {
"path" : "/",
"checksum" : "d41d8cd98f00b204e9800998ecf8427e"
}
}
Example 3: Acknowledge the deletion of a previously synchronized directory
The server sends an acknowledge
where the newVersion
parameter is set to null
to acknowledge the deletion of the previously synchronized directory version as found in the version
parameter. The client should remove any stored entries for this directory from his local checksum store, and no longer send this version in the originalVersions
array in upcoming syncfolders
requests.
Note that an acknowledged deletion of a directory implicitly acknowledges the deletion of all contained files and subfolders, too, so the client should also remove those originalVersions
from his local checksum store.
{
"action" : "acknowledge",
"version" : {
"path" : "/test",
"checksum" : "3525d6f28eb8cb30eb61ab7932367c35"
}
}
edit
Instructs the client to edit a file- or directory version. This is used for move/rename operations. The version
parameter is set to the version as sent in the clientVersions
array of the preceding syncfiles
/syncfolders
action. The newVersion
contains the new name/path the client should use. Unless the optional boolean parameter acknowledge
is set to false
an edit
action implies that the client updates its known versions store accordingly, i.e. removes the previous entry for version
and adds a new entry for newVersion
. When editing a directory version, the client should implicitly take care to create any not existing subdirectories in the path
of the newVersion
parameter. A concurrent client-side modification of the file/directory version can be detected by the client by comparing the current checksum against the one in the passed newVersion
parameter.
Example 1: Rename a file
The server sends an edit
action where the source file is encoded in the version
, and the target file in the newVersion
parameter. The client should rename the file identified by the version
parameter to the name found in the newVersion
parameter. Doing so, the stored checksum entry for the file in version
should be updated, too, to reflect the changes.
{
"path" : "/",
"action" : "edit",
"newVersion" : {
"name" : "test_1.txt",
"checksum" : "03395a94b57eef069d248d90a9410650"
},
"version" : {
"name" : "test.txt",
"checksum" : "03395a94b57eef069d248d90a9410650"
}
}
Example 2: Move a directory
The server sends an edit action where the source directory is encoded in the version, and the target directory in the newVersion parameter. The client should move the directory identified by the version parameter to the path found in the newVersion parameter. Doing so, the stored checksum entry for the directory in version should be updated, too, to reflect the changes.
{
"action" : "edit",
"newVersion" : {
"path" : "/test2",
"checksum" : "3addd6de801f4a8650c5e089769bdb62"
},
"version" : {
"path" : "/test1/test2",
"checksum" : "3addd6de801f4a8650c5e089769bdb62"
}
}
Example 3: Rename a conflicting file
The server sends an edit
action where the original client file is encoded in the version
, and the target filename in the newVersion
parameter. The client should rename the file identified by the version
parameter to the new filename found in the newVersion
parameter. If the acknowledge
parameter is set to true
or is not set, the stored checksum entry for the file in version
should be updated, too, to reflect the changes, otherwise, as in this example, no changes should be done to the stored checksums.
{
"action" : "edit",
"version" : {
"checksum" : "fade32203220752f1fa0e168889cf289",
"name" : "test.txt"
},
"newVersion" : {
"checksum" : "fade32203220752f1fa0e168889cf289",
"name" : "test (TestDrive).txt"
},
"acknowledge" : false,
"path" : "/"
}
download
Contains information about a file version the client should download. For updates of existing files, the previous client version is supplied in the version
parameter. For new files, the version
parameter is omitted. The newVersion
holds the target file version, i.e. filename and checksum, and should be used for the following download
request. The totalLength
parameter is set to the file size in bytes, allowing the client to recognize when a download is finished. Given the supplied checksum, the client may decide on its own if the target file needs to be downloaded from the server, or can be created by copying a file with the same checksum to the target location, e.g. from a trash folder. The file's content type can be retrieved from the contentType
parameter, similar to the file's creation and modification times that are available in the created
and modified
parameters.
Example 1: Download a new file
The server sends a download
action where the file version to download is encoded in the newVersion
paramter. The client should download and save the file as indicated by the name
property of the newVersion
in the directory identified by the supplied path
. After downloading, the newVersion
should be added to the client's known file versions database.
{
"totalLength" : 536453,
"path" : "/",
"action" : "download",
"newVersion" : {
"name" : "test.pdf",
"checksum" : "3e0d7541b37d332c42a9c3adbe34aca2"
},
"contentType" : "application/pdf",
"created" : 1375276738232,
"modified" : 1375343720985
}
Example 2: Download an updated file
The server sends a download
action where the previous file version is encoded in the version
, and the file version to download in the newVersion
parameter. The client should download and save the file as indicated by the name
property of the newVersion
in the directory identified by the supplied path
, replacing the previous file. After downloading, the newVersion
should be added to the client's known file versions database, replacing an existing entry for the previous version.
{
"totalLength" : 1599431,
"path" : "/",
"action" : "download",
"newVersion" : {
"name" : "test.pdf",
"checksum" : "bb198790904f5a1785d7402b0d8c390e"
},
"contentType" : "application/pdf",
"version" : {
"name" : "test.pdf",
"checksum" : "3e0d7541b37d332c42a9c3adbe34aca2"
},
"created" : 1375276738232,
"modified" : 1375343720985
}
upload
Instructs the client to upload a file to the server. For updates of existing files, the previous server version is supplied in the version
parameter, and should be used for the following upload
request. For new files, the version
parameter is omitted. The newVersion
holds the target file version, i.e. filename and checksum, and should be used for the following upload
request. When resuming a previously partly completed upload, the offset
parameter contains the offset in bytes from which the file version should be uploaded by the client. If possible, the client should set the contentType
parameter for the uploaded file, otherwise, the content type falls back to application/octet-stream
.
remove
Instructs the client to delete a file or directory version. The version
parameter contains the version to delete. A deletion also implies a removal of the corresponding entry in the client's known versions store. A concurrent client-side modification of the file/directory version can be detected by comparing the current checksum against the one in the passed version
parameter.
Example 1: Remove a file
The server sends a remove
action where the file to be removed is encoded as version
parameter. The newVersion
parameter is not set in the action. The client should delete the file identified by the version
parameter. A stored checksum entry for the file in version
should be removed, too, to reflect the changes. The newVersion
parameter is not set in the action.
{
"path" : "/test2",
"action" : "remove",
"version" : {
"name" : "test.txt",
"checksum" : "03395a94b57eef069d248d90a9410650"
}
}
Example 2: Remove a directory
The server sends a remove
action where the directory to be removed is encoded as version
parameter. The newVersion
parameter is not set in the action. The client should delete the directory identified by the version
parameter. A stored checksum entry for the directory in version
should be removed, too, to reflect the changes.
{
"action" : "remove",
"version" : {
"path" : "/test1",
"checksum" : "d41d8cd98f00b204e9800998ecf8427e"
}
}
sync
The client should trigger a synchronization of the files in the directory supplied in the version
parameter using the syncfiles
request. A sync
action implies the client-side creation of the referenced directory if it not yet exists, in case of a new directory on the server.
If the version
parameter is not specified, a synchronization of all folders using the syncfolders
request should be initiated by the client.
If the reset
flag in the SYNC
action is set to true
, the client should reset his local state before synchronizing the files in the directory. This may happen when the server detects a synchronization cycle, or believes something else is going wrong. Reset means that the client should invalidate any stored original checksums for the directory itself and any contained files, so that they get re-calculated upon the next synchronization. If the reset
flag is set in a SYNC
action without a specific directory version, the client should invalidate any stored checksums, so that all file- and directory-versions get re-calculated during the following synchronizations.
Example 1: Synchronize folder
The server sends a sync
action with a version. The client should trigger a syncfiles
request for the specified folder.
{
"action": "sync",
"version": {
"path": "<folder>",
"checksum": "<md5>"
}
}
Example 2: Synchronize all folders
The server sends a sync
action without version (or version is //null
//). The client should trigger a syncfolder
request, i.e. the client should synchronize all folders.
{
"action": "sync",
"version": null
}
error
With the error
action, file- or directory versions causing a synchronization problem can be identified. The root cause of the error is encoded in the error
parameter as described at the HTTP API - Section: Error handling.
Basically, there are two scenarios where either the errorneous version affects the synchronization state or not. For example, a file that was deleted at the client without sufficient permissions on the server can just be downloaded again by the client, and afterwards, client and server are in-sync again. On the other hand, e.g. when creating a new file at the client and this file can't be uploaded to the server due to missing permissions, the client is out of sync as long as the file is present. Therefore, the boolean parameter quarantine
instructs the client whether the file or directory version must be excluded from the synchronization or not. If it is set to true
, the client should exclude the version from the clientVersions
array, and indicate the issue to the enduser. However, if the synchronization itself is not affected and the quarantine
flag is set to false
, the client may still indicate the issue once to the user in the background, e.g. as a balloontip notification.
The client may reset it's quarantined versions on it's own, e.g. if the user decides to "try again", or automatically after a configurable interval.
The server may also decide that further synchronization should be suspended, e.g. in case of repeated synchronization problems. Such a situation is indicated with the parameter stop
set to true. In this case, the client should at least cancel the current synchronization cycle. If appropriate, the client should also be put into a 'paused' mode, and the user should be informed accordingly.
There may also be situations where a error or warning is sent to the client, independently of a file- or directory version, e.g. when the client version is outdated and a newer version is available for download.
The most common examples for errors are insufficient permissions or exceeded quota restrictions, see examples below.
Example 1: Create a file in a read-only folder
The server sends an error
action where the errorneous file is encoded in the newVersion
parameter and the quarantine
flag is set to true
. The client should exclude the version from the clientVersions
array in upcoming syncFiles
requests so that it doesn't affect the synchronization algorithm. The error message and further details are encoded in the error
object of the action.
{
"error" : {
"category" : 3,
"error_params" : ["/test"],
"error" : "You are not allowed to create files at \"/test\"",
"error_id" : "1358320776-69",
"categories" : "PERMISSION_DENIED",
"code" : "DRV-0012"
},
"path" : "/test",
"quarantine" : true,
"action" : "error",
"newVersion" : {
"name" : "test.txt",
"checksum" : "3f978a5a54cef77fa3a4d3fe9a7047d2"
}
}
Example 2: Delete a file without sufficient permissions
Besides a new download
action to restore the locally deleted file again, the server sends an error
action where the errorneous file is encoded in the version
parameter and the quarantine
flag is set to false
. Further synchronizations are not affected, but the client may still inform the user about the rejected operation. The error message and further details are encoded in the error
object of the action.
{
"error" : {
"category" : 3,
"error_params" : ["test.png", "/test"],
"error" : "You are not allowed to delete the file \"test.png\" at \"/test\"",
"error_id" : "1358320776-74",
"categories" : "PERMISSION_DENIED",
"code" : "DRV-0011"
},
"path" : "/test",
"quarantine" : false,
"action" : "error",
"newVersion" : {
"name" : "test.png",
"checksum" : "438f06398ce968afdbb7f4db425aff09"
}
}
Example 3: Upload a file that exceeds the quota
The server sends an error
action where the errorneous file is encoded in the newVersion
parameter and the quarantine
flag is set to true
. The client should exclude the version from the clientVersions
array in upcoming syncFiles
requests so that it doesn't affect the synchronization algorithm. The error message and further details are encoded in the error
object of the action.
{
"error" : {
"category" : 3,
"error_params" : [],
"error" : "The allowed Quota is reached",
"error_id" : "-485491844-918",
"categories" : "PERMISSION_DENIED",
"code" : "DRV-0016"
},
"path" : "/",
"quarantine" : true,
"action" : "error",
"newVersion" : {
"name" : "test.txt",
"checksum" : "0ca6033e2a9c2bea1586a2984bf111e6"
}
}
Example 4: Synchronize with a client where the version is no longer supported.
The server sends an error
action with code DRV-0028 and an appropriate error message. The stop
flag is set to true
to interrupt the synchronization cycle.
{
"stop" : true,
"error" : {
"category" : 13,
"error_params" : [],
"error" : "The client application you're using is outdated and no longer supported - please upgrade to a newer version.",
"error_id" : "103394512-13",
"categories" : "WARNING",
"code" : "DRV-0028",
"error_desc" : "Client outdated - current: \"0.9.2\", required: \"0.9.10\""
},
"quarantine" : false,
"action" : "error"
}
Example 5: Synchronize with a client where a new version of the client application is available.
The server sends an error
action with code DRV-0029 and an appropriate error message. The stop
flag is set to false
to indicate that the synchronization can continue.
{
"stop" : false,
"error" : {
"category" : 13,
"error_params" : [],
"error" : "A newer version of your client application is available for download.",
"error_id" : "103394512-29",
"categories" : "WARNING",
"code" : "DRV-0029",
"error_desc" : "Client update available - current: \"0.9.10\", available: \"0.9.12\""
},
"quarantine" : false,
"action" : "error"
}
OX Drive API
The drive http api.
Results
Test-
Drive
The drive module-
Removes the given files and folders from trash. The files and folders will be deleted permanently.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string Body:
Description:A JSON object describing the target files- and directories to delete.
Content-type: application/json-
TrashTargetsBody - The trash targets to restore or delete.
{- files ( array[string] ): An array of file names.
- directories ( array[string] ): An array of folder names.
Responses:
200:
If the operation is successfull, an empty response is returned.
Content-type: application/json-
TrashFolderResponse
{- data ( TrashContent ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
TrashContent
{- files ( array[DriveFileMetadata] ): An array of files.
- directories ( array[DriveDirectoryMetadata] ): An array of folders.
-
DriveFileMetadata
{- name ( string ): The name of the file the metadata belongs to.
- checksum ( string ): The file's checksum. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- path ( string ): The path of the parent directory. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- content_type ( string ): The content type of the file.
- preview ( string ): A URL to a preview image for the file.
- thumbnail ( string ): A URL to a thumbnail image for the file.
- object_permissions ( array[DriveObjectPermission] ): An array of all file permissions.
- extended_object_permissions ( array[DriveObjectExtendedPermission] ): An array of all file permissions including some additional information.
- shared ( boolean ): `true` if the file is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the file can be shared to others by the user, `false` or not set, otherwise.
- locked ( boolean ): `true` if the file is locked, `false` or not set, otherwise.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the file, like "preview", etc.
- number_of_versions ( integer ): The number of all versions of the file.
- version ( string ): The current version identifier (usally, but not necessarily a numerical value) of the file.
- version_comment ( string ): An additional comment for the file version.
- versions ( array[DriveFileVersionMetadata] ): Metadata for all versions of the file.
-
DriveObjectPermission
{-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies.
- group ( boolean ): Is `true` if entity refers to a group, `false` if it refers to a user.
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
-
bits
(
integer
, possibleValues:
-
DriveObjectExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - type ( string ): "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( ContactData ): No description available
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
-
ContactData Composed Schema
ALLOF: Object Object -
Unknown
{- id ( string ): Object ID.
- created_by ( integer , read only ): User ID of the user who created this object.
- modified_by ( integer , read only ): User ID of the user who last modified this object.
- creation_date ( integer , read only ): Date and time of creation.
- last_modified ( integer , read only ): Date and time of the last modification.
- folder_id ( string ): Object ID of the parent folder.
- categories ( string ): String containing comma separated the categories. Order is preserved. Changing the order counts as modification of the object. Not present in folder objects.
- private_flag ( boolean ): Overrides folder permissions in shared private folders: When `true`, this object is not visible to anyone except the owner. Not present in folder objects.
- color_label ( integer ): Color number used by Outlook to label the object. The assignment of colors to numbers is arbitrary and specified by the client. The numbers are integer numbers between 0 and 10 (inclusive). Not present in folder objects.
- number_of_attachments ( integer ): Number of attachments.
- lastModifiedOfNewestAttachmentUTC ( integer ): Timestamp of the newest attachment written with UTC time zone.
-
DistributionListMember
{- id ( string ): Object ID of the member's contact if the member is an existing contact.
- folder_id ( string ): Parent folder ID of the member's contact if the member is an existing contact.
- display_name ( string ): The display name.
- sort_name ( string ): A name which can be used for sorting.
- mail ( string ): The email address (optional if you are referring to an internal contact).
-
mail_field
(
integer
, possibleValues:
0
1
2
3
* 0 (independent contact),
* 1 (default email field, email1),
* 2 (second email field, email2),
* 3 (third email field, email3)
-
DriveFileVersionMetadata
{- name ( string ): The name of the file version.
- file_size ( integer ): The file size of the version in bytes.
- created ( integer ): The file version's creation time (always UTC, not translated into user time).
- modified ( integer ): The file version's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- version ( string ): The version identifier (usually, but not necessarily a numerical value) of the file version.
- version_comment ( string ): An additional comment for the file version.
-
DriveDirectoryMetadata
{- id ( string ): The server-side unique identifier of the directory.
- localized_name ( string ): The localized display name of the directory.
- checksum ( string ): The directory's checksum. Only set if metadata is not retrieved through Metadata synchronization.
- own_rights ( integer ): Folder permissions which apply to the current user, as described in OX HTTP API, Flags / bit masks.
- permissions ( array[DriveFolderPermission] ): An array of all folder permissions.
- extended_permissions ( array[DriveFolderExtendedPermission] ): An array of all folder permissions including some additional information.
- default_folder ( boolean ): `true` if the folder is a default folder, `false` or not set, otherwise.
- has_subfolders ( boolean ): `true` if the folder (potentially) has subfolders, `false` or not set, otherwise.
- shared ( boolean ): `true` if the folder is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the folder can be shared to others by the user, `false` or not set, otherwise.
- not_synchronizable ( boolean ): `true` if the folder is excluded from synchronization, `false` or not set, otherwise.
- type ( integer ): The specifal folder type, or not set, if not available.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the folder, like "permissions", etc.
- files ( array ): Metadata for the contained files. Only set if metadata is retrieved through Metadata synchronization.
- name ( string ): The name of the folder.
- path ( string ): The path of the folder.
-
DriveFolderPermission
{- bits ( integer ): For non-mail folders, a number as described in Permission flags.
- rights ( string ): For mail folders, the rights string as defined in RFC 2086.
- identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies (ignored for type "anonymous" or "guest").
- group ( boolean ): Set `true` if entity refers to a group, `false` if it refers to a user (ignored for type "anonymous" or "guest").
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
- includeSubfolders ( boolean ): If this permission is applied to subfolders (for type "anonymous", optional).
-
DriveFolderExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
- bits ( integer ): A number as described in Permission flags.
- type ( string ): Set "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( contact ): A (reduced) set of Detailed contact data for "user" and "guest" entities.
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
- includeSubfolders ( boolean ): The optionally set "include subfolders" option for "anonymous" entities.
- isInherited ( boolean ): A flag indicating whether the permissions is inherited from the parent folder or not. The client must not allow the user to delete or update inherited permissions.
- isInheritedFrom ( integer ): If this permission is handed down from a parent folder (isInherited is set to `true`) this field contains the id of the sharing folder.
-
-
This request performs the synchronization of a single folder, resulting in different actions that should be executed on the client afterwards. This action is typically executed as result of a
/drive?action=syncfolders
request.Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string path (empty) The path to the synchronized folder, relative to the root folder, starting with `/`.
query string apiVersion (empty) The API version that the client is using. If not set, the initial version 0 is assumed.
query integer device (empty) A friendly name identifying the client device from a user's point of view, e.g. "My Tablet PC".
query string diagnostics (empty) If set to `true`, an additional diagnostics trace is supplied in the response.
query boolean quota (empty) If set to `true`, additional quota information for the folder is supplied in the response.
query boolean columns (empty) A comma-separated list of numeric column identifiers representing additional metadata that is relevant for the client. See File metadata. (deprecated, available until API version 2)
query string pushToken (empty) The client's push registration token to associate it to generated events.
query string driveMeta (empty) Controls the `.drive_meta` synchronization mode. `true`/`false` to forcibly enable or disable metadata synchronization for the request, or `inline` to include `.drive-meta`-data inside a corresponding `download` action as `data`-parameter. (available since v7.8.2)
query string Body:
Description:A JSON object containing the fields `clientVersions` and `originalVersions`, both representing JSON arrays. Since API version 2, the JSON object may also contain an array named `fileExclusions`.
Content-type: application/json-
DriveSyncFilesBody
{- clientVersions ( array[DriveFileVersion] , required ): Lists all current files in the client directory.
- originalVersions ( array , required ): Contains all previously known files, i.e. all previously synchronized and acknowledged files.
- fileExclusions ( array[DriveFilePattern] ): Defines client-side exclusion filters for files (since API version 2). See Client side filtering for further information.
-
DriveFileVersion - A file in a directory is uniquely identified by its filename and the checksum of its content.
{- name ( string ): The name of the file, including its extension, e.g. "test.doc".
- checksum ( string ): The MD5 hash of the file, expressed as a lowercase hexadecimal number string, 32 characters long, e.g. "f8cacac95379527cd4fa15f0cb782a09".
-
DriveFilePattern
{- type ( string ): The pattern type, currently one of `exact` or `glob`, see Pattern types, too.
- path ( string ): The path pattern, in a format depending on the pattern type.
- name ( string ): The filename pattern, in a format depending on the pattern type.
- caseSensitive ( boolean ): An optional flag to enable case-sensitive matching, defaults to `false`.
Responses:
200:
A JSON object containing an array of actions the client should execute for synchronization. If the `diagnostics` parameter was set, quota information was requested, or the supplied API version parameter is equal or grater than 8, the array is wrapped into an additional JSON object in the field `actions`. The path to the root folder is indicated in `pathToRoot`. The localized path to the root folder based on the user's locale) is indicated in `localizedPathToRoot`. If requested, the diagnostics trace is provided at `diagnostics`, quota information at `quota`. If `driveMeta` was set to `inline`, `download` actions for `.drive-meta` will carry the metadata in an additional JSON object in `data` field of `action`. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveExtendedActionsResponse
{- data ( data ): An array containing the actions the client should execute for synchronization. If the `diagnostics` parameter was set, quota information was requested, or the supplied API version parameter is equal or grater than 8, the array is wrapped into an additional JSON object in the field `actions`. The path to the root folder is indicated in `pathToRoot`. The localized path to the root folder (based on the user's locale) is indicated in `localizedPathToRoot`.If requested, the diagnostics trace is provided at `diagnostics`, quota information at `quota`. If `driveMeta` was set to `inline`, `download` actions for `.drive-meta` will carry the metadata in an additional JSON object in `data` field of `action`. In case of errors the responsible fields in the response are filled. A JSON object containing an array of actions the client should execute for synchronization.
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
data - An array containing the actions the client should execute for synchronization. If the `diagnostics` parameter was set, quota information was requested, or the supplied API version parameter is equal or grater than 8, the array is wrapped into an additional JSON object in the field `actions`. The path to the root folder is indicated in `pathToRoot`. The localized path to the root folder (based on the user's locale) is indicated in `localizedPathToRoot`.If requested, the diagnostics trace is provided at `diagnostics`, quota information at `quota`. If `driveMeta` was set to `inline`, `download` actions for `.drive-meta` will carry the metadata in an additional JSON object in `data` field of `action`. In case of errors the responsible fields in the response are filled. A JSON object containing an array of actions the client should execute for synchronization.
{- actions ( array[DriveExtendedAction] ): No description available
- pathToRoot ( string ): Path to internal 'real' root folder from given rootFolderId
- localizedPathToRoot ( string ): Localized path to internal 'real' root folder from given rootFolderId (based on the supplied `language` or the user's locale).
- diagnostics ( string ): The diagnostics log
- quota ( array[DriveQuota] ): An array of quota objects showing the quota limits and usage. A size of zero represents unlimited quota.
-
DriveExtendedAction
{- data ( DriveDirectoryMetadata ): No description available
- action ( string ): The type of action to execute, currently one of `acknowledge`, `edit`, `download`, `upload`, `remove`, `sync`, or `error`. See Action types overview, too.
- version ( Version ): The (original) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
- newVersion ( NewVersion ): The (new) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
- path ( string ): The path to the synchronized folder, relative to the root folder.
- offset ( integer ): The requested start offset in bytes for file uploads.
- totalLength ( integer ): The total length in bytes for file downloads.
- contentType ( string ): The file's content type for downloads (deprecated, available until API version 2).
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- error ( DriveSyncErrorData ): The error data in case of synchronization errors.
- quarantine ( boolean ): The flag to indicate whether the versions need to be excluded from synchronization.
- noChunks ( boolean ): The flag to indicate that no partial uploads are possible due to missing support for temporary files.
- reset ( boolean ): The flag to indicate whether locally stored checksums should be invalidated.
- stop ( boolean ): The flag to signal that the client should stop the current synchronization cycle.
- acknowledge ( boolean ): The flag to signal if the client should not update it's stored checksums when performing an `edit` action.
- thumbnailLink ( string ): A direct link to a small thumbnail image of the file if available (deprecated, available until API version 2).
- previewLink ( string ): A direct link to a medium-sized preview image of the file if available (deprecated, available until API version 2).
- directLink ( string ): A direct link to the detail view of the file in the web interface (deprecated, available until API version 2).
- directLinkFragments ( string ): The fragments part of the direct link (deprecated, available until API version 2).
-
DriveDirectoryMetadata
{- id ( string ): The server-side unique identifier of the directory.
- localized_name ( string ): The localized display name of the directory.
- checksum ( string ): The directory's checksum. Only set if metadata is not retrieved through Metadata synchronization.
- own_rights ( integer ): Folder permissions which apply to the current user, as described in OX HTTP API, Flags / bit masks.
- permissions ( array[DriveFolderPermission] ): An array of all folder permissions.
- extended_permissions ( array[DriveFolderExtendedPermission] ): An array of all folder permissions including some additional information.
- default_folder ( boolean ): `true` if the folder is a default folder, `false` or not set, otherwise.
- has_subfolders ( boolean ): `true` if the folder (potentially) has subfolders, `false` or not set, otherwise.
- shared ( boolean ): `true` if the folder is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the folder can be shared to others by the user, `false` or not set, otherwise.
- not_synchronizable ( boolean ): `true` if the folder is excluded from synchronization, `false` or not set, otherwise.
- type ( integer ): The specifal folder type, or not set, if not available.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the folder, like "permissions", etc.
- files ( array[DriveFileMetadata] ): Metadata for the contained files. Only set if metadata is retrieved through Metadata synchronization.
- name ( string ): The name of the folder.
- path ( string ): The path of the folder.
-
DriveFolderPermission
{- bits ( integer ): For non-mail folders, a number as described in Permission flags.
- rights ( string ): For mail folders, the rights string as defined in RFC 2086.
- identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies (ignored for type "anonymous" or "guest").
- group ( boolean ): Set `true` if entity refers to a group, `false` if it refers to a user (ignored for type "anonymous" or "guest").
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
- includeSubfolders ( boolean ): If this permission is applied to subfolders (for type "anonymous", optional).
-
DriveFolderExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
- bits ( integer ): A number as described in Permission flags.
- type ( string ): Set "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( contact ): A (reduced) set of Detailed contact data for "user" and "guest" entities.
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
- includeSubfolders ( boolean ): The optionally set "include subfolders" option for "anonymous" entities.
- isInherited ( boolean ): A flag indicating whether the permissions is inherited from the parent folder or not. The client must not allow the user to delete or update inherited permissions.
- isInheritedFrom ( integer ): If this permission is handed down from a parent folder (isInherited is set to `true`) this field contains the id of the sharing folder.
-
DriveFileMetadata
{- name ( string ): The name of the file the metadata belongs to.
- checksum ( string ): The file's checksum. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- path ( string ): The path of the parent directory. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- content_type ( string ): The content type of the file.
- preview ( string ): A URL to a preview image for the file.
- thumbnail ( string ): A URL to a thumbnail image for the file.
- object_permissions ( array[DriveObjectPermission] ): An array of all file permissions.
- extended_object_permissions ( array[DriveObjectExtendedPermission] ): An array of all file permissions including some additional information.
- shared ( boolean ): `true` if the file is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the file can be shared to others by the user, `false` or not set, otherwise.
- locked ( boolean ): `true` if the file is locked, `false` or not set, otherwise.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the file, like "preview", etc.
- number_of_versions ( integer ): The number of all versions of the file.
- version ( string ): The current version identifier (usally, but not necessarily a numerical value) of the file.
- version_comment ( string ): An additional comment for the file version.
- versions ( array[DriveFileVersionMetadata] ): Metadata for all versions of the file.
-
DriveObjectPermission
{-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies.
- group ( boolean ): Is `true` if entity refers to a group, `false` if it refers to a user.
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
-
bits
(
integer
, possibleValues:
-
DriveObjectExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - type ( string ): "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( ContactData ): No description available
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
-
ContactData Composed Schema
ALLOF: Object Object -
Unknown
{- id ( string ): Object ID.
- created_by ( integer , read only ): User ID of the user who created this object.
- modified_by ( integer , read only ): User ID of the user who last modified this object.
- creation_date ( integer , read only ): Date and time of creation.
- last_modified ( integer , read only ): Date and time of the last modification.
- folder_id ( string ): Object ID of the parent folder.
- categories ( string ): String containing comma separated the categories. Order is preserved. Changing the order counts as modification of the object. Not present in folder objects.
- private_flag ( boolean ): Overrides folder permissions in shared private folders: When `true`, this object is not visible to anyone except the owner. Not present in folder objects.
- color_label ( integer ): Color number used by Outlook to label the object. The assignment of colors to numbers is arbitrary and specified by the client. The numbers are integer numbers between 0 and 10 (inclusive). Not present in folder objects.
- number_of_attachments ( integer ): Number of attachments.
- lastModifiedOfNewestAttachmentUTC ( integer ): Timestamp of the newest attachment written with UTC time zone.
-
DistributionListMember
{- id ( string ): Object ID of the member's contact if the member is an existing contact.
- folder_id ( string ): Parent folder ID of the member's contact if the member is an existing contact.
- display_name ( string ): The display name.
- sort_name ( string ): A name which can be used for sorting.
- mail ( string ): The email address (optional if you are referring to an internal contact).
-
mail_field
(
integer
, possibleValues:
0
1
2
3
* 0 (independent contact),
* 1 (default email field, email1),
* 2 (second email field, email2),
* 3 (third email field, email3)
-
DriveFileVersionMetadata
{- name ( string ): The name of the file version.
- file_size ( integer ): The file size of the version in bytes.
- created ( integer ): The file version's creation time (always UTC, not translated into user time).
- modified ( integer ): The file version's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- version ( string ): The version identifier (usually, but not necessarily a numerical value) of the file version.
- version_comment ( string ): An additional comment for the file version.
-
Version - The (original) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
{- name ( string ): The name of the file. Only set for file versions.
- checksum ( string ): The checksum of the file or folder.
- path ( string ): The path of the folder. Only set for folder versions.
-
NewVersion - The (new) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
{- name ( string ): The name of the file. Only set for file versions.
- checksum ( string ): The checksum of the file or folder.
- path ( string ): The path of the folder. Only set for folder versions.
-
DriveSyncErrorData - The error data in case of synchronization errors.
{- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "DRV-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
-
DriveQuota
{- type ( string ): The kind of quota restriction, currently either `storage` (size of contained files in bytes) or `file` (number of files).
- limit ( integer ): The allowed limit (either number of files or sum of file sizes in bytes).
- use ( integer ): The current usage (again either number of files or sum of file sizes in bytes).
Examples:
Example1: Basic example==> PUT http://192.168.32.191/ajax/drive?action=syncfiles&root=56&path=/test2&device=Laptop&session=5d0c1e8eb0964a3095438b450ff6810f > Content: { "clientVersions" : [{ "name" : "Jellyfish.jpg", "checksum" : "5a44c7ba5bbe4ec867233d67e4806848" }, { "name" : "Penguins.jpg", "checksum" : "9d377b10ce778c4938b3c7e2c63a229a" } ], "originalVersions" : [{ "name" : "Jellyfish.jpg", "checksum" : "5a44c7ba5bbe4ec867233d67e4806848" } ] } <== HTTP 200 OK (6.0004 ms elapsed, 140 bytes received) < Content: { "data" : [{ "path" : "/test2", "action" : "upload", "newVersion" : { "name" : "Penguins.jpg", "checksum" : "9d377b10ce778c4938b3c7e2c63a229a" }, "offset" : 0 } ] }
Example2: Filesync with exclusions==> PUT http://192.168.32.191/ajax/drive?action=syncfiles&root=56&path=/test2&device=Laptop&session=5d0c1e8eb0964a3095438b450ff6810f > Content: { "clientVersions" : [{ "name" : "Jellyfish.jpg", "checksum" : "5a44c7ba5bbe4ec867233d67e4806848" }, { "name" : "Penguins.jpg", "checksum" : "9d377b10ce778c4938b3c7e2c63a229a" } ], "originalVersions" : [{ "name" : "Jellyfish.jpg", "checksum" : "5a44c7ba5bbe4ec867233d67e4806848" } ] "fileExclusions" : [{ "path" : "*", "name" : "*.tmp", "type" : "glob" } ] } <== HTTP 200 OK (6.0004 ms elapsed, 140 bytes received) < Content: { "data" : [{ "path" : "/test2", "action" : "upload", "newVersion" : { "name" : "Penguins.jpg", "checksum" : "9d377b10ce778c4938b3c7e2c63a229a" }, "offset" : 0 } ] }
Example3: Initial sync==> PUT http://192.168.32.191/ajax/drive?action=syncfiles&root=123975&path=/&apiVersion=4&driveMeta=inline&session=0833ca06093a4bad826347a30bf7ace7 > Content: { "clientVersions": [], "originalVersions": [] } <== HTTP 200 OK (27.5238 ms elapsed, 2058 bytes received) < Content: { "data": { "actions": [{ "action": "download", "newVersion": { "checksum": "36301942a30c3c09bc59f6e9b0c63fba", "name": ".drive-meta" }, "totalLength": 1511, "data": { "id": "123975", "own_rights": 403710016, "permissions": [{ "bits": 403710016, "entity": 7, "group": false }], "extended_permissions": [{ "entity": 7, "bits": 403710016, "type": "user", "display_name": "Test User 2", "contact": { "email1": "test2@local.ox", "last_name": "test2", "first_name": "test2" } }], "jump": ["permissions"], "shareable": true, "files": [{ "name": "test1.txt", "created": 1460030191867, "modified": 1460030191867, "created_by": 7, "modified_by": 7, "content_type": "text/plain", "preview": "http://local.ox/ajax/files?action=document&format=preview_image&folder=123975&id=123975/493515&version=1&delivery=download&scaleType=contain&width=1600&height=1600", "thumbnail": "http://local.ox/ajax/files?action=document&format=preview_image&folder=123975&id=123975/493515&version=1&delivery=download&scaleType=contain&width=100&height=100", "shareable": true, "number_of_versions": 1, "version": "1", "jump": ["preview", "edit", "permissions", "version_history"] }, { "name": "test2.txt", "created": 1460030191931, "modified": 1460030191931, "created_by": 7, "modified_by": 7, "content_type": "text/plain", "preview": "http://local.ox/ajax/files?action=document&format=preview_image&folder=123975&id=123975/493516&version=1&delivery=download&scaleType=contain&width=1600&height=1600", "thumbnail": "http://local.ox/ajax/files?action=document&format=preview_image&folder=123975&id=123975/493516&version=1&delivery=download&scaleType=contain&width=100&height=100", "shareable": true, "number_of_versions": 1, "version": "1", "jump": ["preview", "edit", "permissions", "version_history"] }] }, "path": "/", "modified": 1460030191779 }, { "action": "download", "newVersion": { "checksum": "e8d1be53d24895ae5cfc2808bec152bc", "name": "test1.txt" }, "totalLength": 36, "created": 1460030191867, "path": "/", "modified": 1460030191867 }, { "action": "download", "newVersion": { "checksum": "767c4efab82482dcfafdcdbc034800d4", "name": "test2.txt" }, "totalLength": 36, "created": 1460030191931, "path": "/", "modified": 1460030191931 }] } }
-
-
Explicitly performs a move or rename operation for a file. This method is intended for the situation when no phsyical copy of the synchronized data is available on the client.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string path (empty) The path to the synchronized folder, relative to the root folder, starting with `/`.
query string checksum (empty) The checksum of the directory to update.
query string newPath (empty) The new target path to apply, relative to the root folder.
query string name (empty) The name of the file version to update.
query string newName (empty) The target name to apply.
query string Responses:
200:
An empty JSON object in case of a successful move. The client should perform the move operation locally afterwards, then enter a normal synchronization cycle to acknowledge any changes.
Content-type: application/json-
CommonResponse
{- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
Examples:
Example1: Basic example==> GET http://local.ox/ajax/drive?action=moveFile&root=163162&apiVersion=6&path=%2f&name=wurst.txt&checksum=f04e78d909d69a8463afd9e4dd159dcc&newName=wurst2.txt&session=213306bec07644ae9b6cc6a16d2be022 <== HTTP 200 OK (43.6119 ms elapsed, 11 bytes received) < Content: { "data": {} }
-
-
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string path (empty) The path to the synchronized folder, relative to the root folder, starting with `/`.
query string apiVersion (empty) The API version that the client is using. If not set, the initial version 0 is assumed.
query integer newName (empty) The target name of the file version to upload.
query string newChecksum (empty) The target checksum of the file version to upload.
query string name (empty) The previous name of the file version being uploaded. Only set when uploading an updated version of an existing file to the server.
query string checksum (empty) The previous checksum of the file version to upload. Only set when uploading an updated version of an extsing file to the server.
query string contentType (empty) The content type of the file. If not defined, `application/octet-stream` is assumed.
query string offset (empty) The start offset in bytes for the upload when resuming a previous partial upload. If not defined, an offset of 0 is assumed.
query long totalLength (empty) The total expected length of the file (required to support resume of uploads). If not defined, the upload is assumed completed after the operation.
query long created (empty) The creation time of the file as timestamp.
query long modified (empty) The last modification time of the file as timestamp. Defaults to the current server time if no value or a value larger than the current time is supplied.
query long device (empty) A friendly name identifying the client device from a user's point of view, e.g. "My Tablet PC".
query string diagnostics (empty) If set to `true`, an additional diagnostics trace is supplied in the response.
query boolean pushToken (empty) The client's push registration token to associate it to generated events.
query string Body:
Description:The binary content of the file version to upload.
Content-type: application/octet-stream-
Unknown
Responses:
200:
A JSON object containing an array of actions the client should execute for synchronization. If the `diagnostics` parameter was set, the array is wrapped into an additional JSON object in the field `actions` and the diagnostics trace is provided at `diagnostics`. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveUploadResponse
{- data ( array[DriveAction] ): An array containing the actions the client should execute for synchronization. For the case that diagnostics parameter is true another schema definition is needed. This case is currently not realizable with OpenAPI.
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveAction
{- action ( string ): The type of action to execute, currently one of `acknowledge`, `edit`, `download`, `upload`, `remove`, `sync`, or `error`. See Action types overview, too.
- version ( Version ): The (original) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
- newVersion ( NewVersion ): The (new) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
- path ( string ): The path to the synchronized folder, relative to the root folder.
- offset ( integer ): The requested start offset in bytes for file uploads.
- totalLength ( integer ): The total length in bytes for file downloads.
- contentType ( string ): The file's content type for downloads (deprecated, available until API version 2).
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- error ( DriveSyncErrorData ): The error data in case of synchronization errors.
- quarantine ( boolean ): The flag to indicate whether the versions need to be excluded from synchronization.
- noChunks ( boolean ): The flag to indicate that no partial uploads are possible due to missing support for temporary files.
- reset ( boolean ): The flag to indicate whether locally stored checksums should be invalidated.
- stop ( boolean ): The flag to signal that the client should stop the current synchronization cycle.
- acknowledge ( boolean ): The flag to signal if the client should not update it's stored checksums when performing an `edit` action.
- thumbnailLink ( string ): A direct link to a small thumbnail image of the file if available (deprecated, available until API version 2).
- previewLink ( string ): A direct link to a medium-sized preview image of the file if available (deprecated, available until API version 2).
- directLink ( string ): A direct link to the detail view of the file in the web interface (deprecated, available until API version 2).
- directLinkFragments ( string ): The fragments part of the direct link (deprecated, available until API version 2).
-
Version - The (original) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
{- name ( string ): The name of the file. Only set for file versions.
- checksum ( string ): The checksum of the file or folder.
- path ( string ): The path of the folder. Only set for folder versions.
-
NewVersion - The (new) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
{- name ( string ): The name of the file. Only set for file versions.
- checksum ( string ): The checksum of the file or folder.
- path ( string ): The path of the folder. Only set for folder versions.
-
DriveSyncErrorData - The error data in case of synchronization errors.
{- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "DRV-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
Examples:
Example1: Basic example==> PUT http://192.168.32.191/ajax/drive?action=upload&root=56&path=/test2&newName=Penguins.jpg&newChecksum=9d377b10ce778c4938b3c7e2c63a229a&contentType=image/jpeg&offset=0&totalLength=777835&binary=true&device=Laptop&created=1375343426999&modified=1375343427001&session=5d0c1e8eb0964a3095438b450ff6810f > Content: [application/octet-stream;, 777835 bytes] <== HTTP 200 OK (108.0062 ms elapsed, 118 bytes received) < Content: { "data" : [{ "action" : "acknowledge", "newVersion" : { "name" : "Penguins.jpg", "checksum" : "9d377b10ce778c4938b3c7e2c63a229a" } } ] }
-
-
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string path (empty) The path to the synchronized folder, relative to the root folder, starting with `/`.
query string apiVersion (empty) The API version that the client is using. If not set, the initial version 0 is assumed.
query integer name (empty) The name of the file version to download.
query string checksum (empty) The checksum of the file version to download.
query string offset (empty) The start offset in bytes for the download. If not defined, an offset of 0 is assumed.
query long length (empty) The numer of bytes to include in the download stream. If not defined, the file is read until the end.
query long binary (empty) Additional flag to prevent non-binary API responses during errors.
query boolean Body:
Description:Optionally, available since API version 3, the request body can contain a JSON object with file- and/or directory exclusion filters.
Content-type: application/json-
DriveDownloadBody
{- fileExclusions ( array[DriveFilePattern] ): Defines client-side exclusion filters for files (since API version 3). See Client side filtering for further information.
- directoryExclusions ( array[DriveDirectoryPattern] ): Defines client-side exclusion filters for directories (since API version 3). See Client side filtering for further information.
-
DriveFilePattern
{- type ( string ): The pattern type, currently one of `exact` or `glob`, see Pattern types, too.
- path ( string ): The path pattern, in a format depending on the pattern type.
- name ( string ): The filename pattern, in a format depending on the pattern type.
- caseSensitive ( boolean ): An optional flag to enable case-sensitive matching, defaults to `false`.
-
DriveDirectoryPattern
{- type ( string ): The pattern type, currently one of `exact` or `glob`, see Pattern types, too.
- path ( string ): The path pattern, in a format depending on the pattern type.
- caseSensitive ( boolean ): An optional flag to enable case-sensitive matching, defaults to `false`.
Responses:
200:
The binary content of the requested file version.
Content-type: application/octet-stream-
Unknown
404:
In case of the requested file was deleted or modified in the meantime.
500:
In case of errors like missing parameters, etc.
Examples:
Example1: Basic example==> GET http://192.168.32.191/ajax/drive?action=download&root=56&path=/test2&name=Jellyfish.jpg&checksum=5a44c7ba5bbe4ec867233d67e4806848&offset=0&length=-1&session=5d0c1e8eb0964a3095438b450ff6810f <== HTTP 200 OK (20.0011 ms elapsed, 775702 bytes received)
-
-
This request performs the synchronization of all folders, resulting in different actions that should be executed on the client afterwards. This operation typically serves as an entry point for a synchronization cycle.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string apiVersion (empty) The API version that the client is using. If not set, the initial version 0 is assumed.
query integer version (empty) The current client version (matching the pattern `^[0-9]+(\\.[0-9]+)*$). If not set, the initial version 0 is assumed.
query string diagnostics (empty) If set to `true`, an additional diagnostics trace is supplied in the response.
query boolean quota (empty) If set to `true`, additional quota information for the folder is supplied in the response.
query boolean pushToken (empty) The client's push registration token to associate it to generated events.
query string Body:
Description:A JSON object containing the fields `clientVersions` and `originalVersions`, both representing JSON arrays. Since API version 2, the JSON object may also contain two arrays named `fileExclusions` and `directoryExclusions`.
Content-type: application/json-
DriveSyncFoldersBody
{- clientVersions ( array[DriveDirectoryVersion] , required ): Lists all current directories below the root directory as a flat list.
- originalVersions ( array , required ): Contains all previously known directories, i.e. all previously synchronized and acknowledged directories.
- fileExclusions ( array[DriveFilePattern] ): Defines client-side exclusion filters for files (since API version 2). See Client side filtering for further information.
- directoryExclusions ( array[DriveDirectoryPattern] ): Defines client-side exclusion filters for directories (since API version 2). See Client side filtering for further information.
-
DriveDirectoryVersion - A directory is uniquely identified by its full path, relative to the root folder, and the checksum of its content.
{- path ( string ): The path of the directory, including the directory's name, relative to the root folder, e.g. "/sub/test/letters."
- checksum ( string ): The MD5 hash of the directory, expressed as a lowercase hexadecimal number string, 32 characters long, e.g. "f8cacac95379527cd4fa15f0cb782a09".
-
DriveFilePattern
{- type ( string ): The pattern type, currently one of `exact` or `glob`, see Pattern types, too.
- path ( string ): The path pattern, in a format depending on the pattern type.
- name ( string ): The filename pattern, in a format depending on the pattern type.
- caseSensitive ( boolean ): An optional flag to enable case-sensitive matching, defaults to `false`.
-
DriveDirectoryPattern
{- type ( string ): The pattern type, currently one of `exact` or `glob`, see Pattern types, too.
- path ( string ): The path pattern, in a format depending on the pattern type.
- caseSensitive ( boolean ): An optional flag to enable case-sensitive matching, defaults to `false`.
Responses:
200:
A JSON object containing an array of actions the client should execute for synchronization. If the `diagnostics` parameter was set, the array is wrapped into an additional JSON object in the field `actions` and the diagnostics trace is provided at `diagnostics`. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveSyncFolderResponse
{- data ( data ): If `diagnostics` parameter is set, this is a JSON object with the fields `actions` (array of actions to execute), `diagnostics` (contains diagnostics trace), `pathToRoot`(Path to internal 'real' root folder from given rootFolderId), `localizedPathToRoot` (localized path to internal 'real' root folder from given rootFolderId based on the user's locale) and `quota`(quota limits and usage).
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
data - If `diagnostics` parameter is set, this is a JSON object with the fields `actions` (array of actions to execute), `diagnostics` (contains diagnostics trace), `pathToRoot`(Path to internal 'real' root folder from given rootFolderId), `localizedPathToRoot` (localized path to internal 'real' root folder from given rootFolderId based on the user's locale) and `quota`(quota limits and usage).
{- actions ( array[DriveAction] ): No description available
- diagnostics ( string ): The diagnostics trace.
- pathToRoot ( string ): Path to internal 'real' root folder from given rootFolderId
- localizedPathToRoot ( string ): Localized path to internal 'real' root folder from given rootFolderId (based on the user's locale).
- quota ( DriveQuotaData ): No description available
-
DriveAction
{- action ( string ): The type of action to execute, currently one of `acknowledge`, `edit`, `download`, `upload`, `remove`, `sync`, or `error`. See Action types overview, too.
- version ( Version ): The (original) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
- newVersion ( NewVersion ): The (new) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
- path ( string ): The path to the synchronized folder, relative to the root folder.
- offset ( integer ): The requested start offset in bytes for file uploads.
- totalLength ( integer ): The total length in bytes for file downloads.
- contentType ( string ): The file's content type for downloads (deprecated, available until API version 2).
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- error ( DriveSyncErrorData ): The error data in case of synchronization errors.
- quarantine ( boolean ): The flag to indicate whether the versions need to be excluded from synchronization.
- noChunks ( boolean ): The flag to indicate that no partial uploads are possible due to missing support for temporary files.
- reset ( boolean ): The flag to indicate whether locally stored checksums should be invalidated.
- stop ( boolean ): The flag to signal that the client should stop the current synchronization cycle.
- acknowledge ( boolean ): The flag to signal if the client should not update it's stored checksums when performing an `edit` action.
- thumbnailLink ( string ): A direct link to a small thumbnail image of the file if available (deprecated, available until API version 2).
- previewLink ( string ): A direct link to a medium-sized preview image of the file if available (deprecated, available until API version 2).
- directLink ( string ): A direct link to the detail view of the file in the web interface (deprecated, available until API version 2).
- directLinkFragments ( string ): The fragments part of the direct link (deprecated, available until API version 2).
-
Version - The (original) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
{- name ( string ): The name of the file. Only set for file versions.
- checksum ( string ): The checksum of the file or folder.
- path ( string ): The path of the folder. Only set for folder versions.
-
NewVersion - The (new) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
{- name ( string ): The name of the file. Only set for file versions.
- checksum ( string ): The checksum of the file or folder.
- path ( string ): The path of the folder. Only set for folder versions.
-
DriveSyncErrorData - The error data in case of synchronization errors.
{- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "DRV-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
-
DriveQuotaData
{- quota ( array[DriveQuota] ): An array of quota objects showing the quota limits and usage. A size of zero represents unlimited quota.
- manageLink ( string ): A hyperlink that points to an URL where the user can manage his quota restrictions.
-
DriveQuota
{- type ( string ): The kind of quota restriction, currently either `storage` (size of contained files in bytes) or `file` (number of files).
- limit ( integer ): The allowed limit (either number of files or sum of file sizes in bytes).
- use ( integer ): The current usage (again either number of files or sum of file sizes in bytes).
Examples:
Example1: Basic example==> PUT http://192.168.32.191/ajax/drive?action=syncfolders&root=56&session=5d0c1e8eb0964a3095438b450ff6810f > Content: { "clientVersions" : [{ "path" : "/", "checksum" : "7b744b13df4b41006495e1a15327368a" }, { "path" : "/test1", "checksum" : "3ecc97334d7f6bf2b795988092b8137e" }, { "path" : "/test2", "checksum" : "56534fc2ddcb3b7310d3ef889bc5ae18" }, { "path" : "/test2/test3", "checksum" : "c193fae995d9f9431986dcdc3621cd98" } ], "originalVersions" : [{ "path" : "/", "checksum" : "7b744b13df4b41006495e1a15327368a" }, { "path" : "/test2/test3", "checksum" : "c193fae995d9f9431986dcdc3621cd98" }, { "path" : "/test2", "checksum" : "35d1b51fdefbee5bf81d7ae8167719b8" }, { "path" : "/test1", "checksum" : "3ecc97334d7f6bf2b795988092b8137e" } ] } <== HTTP 200 OK (8.0004 ms elapsed, 102 bytes received) < Content: { "data" : [{ "action" : "sync", "version" : { "path" : "/test2", "checksum" : "56534fc2ddcb3b7310d3ef889bc5ae18" } } ] }
Example2: Extended example==> PUT http://192.168.32.191/ajax/drive?action=syncfolders&root=56&session=5d0c1e8eb0964a3095438b450ff6810f > Content: { "clientVersions" : [{ "path" : "/", "checksum" : "7b744b13df4b41006495e1a15327368a" }, { "path" : "/test1", "checksum" : "3ecc97334d7f6bf2b795988092b8137e" }, { "path" : "/test2", "checksum" : "56534fc2ddcb3b7310d3ef889bc5ae18" }, { "path" : "/test2/test3", "checksum" : "c193fae995d9f9431986dcdc3621cd98" } ], "originalVersions" : [{ "path" : "/", "checksum" : "7b744b13df4b41006495e1a15327368a" }, { "path" : "/test2/test3", "checksum" : "c193fae995d9f9431986dcdc3621cd98" }, { "path" : "/test2", "checksum" : "35d1b51fdefbee5bf81d7ae8167719b8" }, { "path" : "/test1", "checksum" : "3ecc97334d7f6bf2b795988092b8137e" } ] "fileExclusions" : [{ "path" : "/", "name" : "excluded.txt", "type" : "exact" } ], "directoryExclusions" : [{ "path" : "/temp", "type" : "exact" }, { "path" : "/temp/*", "type" : "glob" } ] } <== HTTP 200 OK (8.0004 ms elapsed, 102 bytes received) < Content: { "data" : [{ "action" : "sync", "version" : { "path" : "/test2", "checksum" : "56534fc2ddcb3b7310d3ef889bc5ae18" } } ] }
Example3: Example with error (not synchronizable root folder)==> PUT http://drive.local.ox/ajax/drive?action=syncfolders&root=41766&session=eb280e1624bd48f3b236b1dc815eb443 > Content: { "clientVersions" : [], "originalVersions" : [] } <== HTTP 200 OK (4.3595 ms elapsed, 379 bytes received) < Content: { "data" : [{ "action": "error", "stop": true, "quarantine": false, "error": { "error": "The directory is no longer accessible. Please select another directory.", "error_params": [ "41768" ], "categories": "USER_INPUT", "category": 1, "code": "DRV-0044", "error_id": "1891144233-6", "error_desc": "Directory 41768 not accessible." } } ] }
-
-
Updates specific metadata of a synchronized file. This currently only includes the object permissions - which in turn is only allowed for files marked as
shareable
.Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string path (empty) The path to the synchronized folder, relative to the root folder, starting with `/`.
query string name (empty) The name of the file version.
query string checksum (empty) The checksum of the file to update.
query string Body:
Description:A JSON object containing the fields `file` and `notification`. The JSON object in field `file` describes the updated file metadata (currently only the property `object_permissions` is considered) and the JSON object `notification` may include a message to notify added permission entities. To notify with a default message, an empty `notification` object should still be added.
Content-type: application/json-
DriveFileUpdateBody
{- file ( DriveFileMetadata ): No description available
- notification ( DriveNotificationData ): No description available
-
DriveFileMetadata
{- name ( string ): The name of the file the metadata belongs to.
- checksum ( string ): The file's checksum. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- path ( string ): The path of the parent directory. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- content_type ( string ): The content type of the file.
- preview ( string ): A URL to a preview image for the file.
- thumbnail ( string ): A URL to a thumbnail image for the file.
- object_permissions ( array[DriveObjectPermission] ): An array of all file permissions.
- extended_object_permissions ( array[DriveObjectExtendedPermission] ): An array of all file permissions including some additional information.
- shared ( boolean ): `true` if the file is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the file can be shared to others by the user, `false` or not set, otherwise.
- locked ( boolean ): `true` if the file is locked, `false` or not set, otherwise.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the file, like "preview", etc.
- number_of_versions ( integer ): The number of all versions of the file.
- version ( string ): The current version identifier (usally, but not necessarily a numerical value) of the file.
- version_comment ( string ): An additional comment for the file version.
- versions ( array[DriveFileVersionMetadata] ): Metadata for all versions of the file.
-
DriveObjectPermission
{-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies.
- group ( boolean ): Is `true` if entity refers to a group, `false` if it refers to a user.
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
-
bits
(
integer
, possibleValues:
-
DriveObjectExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - type ( string ): "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( ContactData ): No description available
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
-
ContactData Composed Schema
ALLOF: Object Object -
Unknown
{- id ( string ): Object ID.
- created_by ( integer , read only ): User ID of the user who created this object.
- modified_by ( integer , read only ): User ID of the user who last modified this object.
- creation_date ( integer , read only ): Date and time of creation.
- last_modified ( integer , read only ): Date and time of the last modification.
- folder_id ( string ): Object ID of the parent folder.
- categories ( string ): String containing comma separated the categories. Order is preserved. Changing the order counts as modification of the object. Not present in folder objects.
- private_flag ( boolean ): Overrides folder permissions in shared private folders: When `true`, this object is not visible to anyone except the owner. Not present in folder objects.
- color_label ( integer ): Color number used by Outlook to label the object. The assignment of colors to numbers is arbitrary and specified by the client. The numbers are integer numbers between 0 and 10 (inclusive). Not present in folder objects.
- number_of_attachments ( integer ): Number of attachments.
- lastModifiedOfNewestAttachmentUTC ( integer ): Timestamp of the newest attachment written with UTC time zone.
-
DistributionListMember
{- id ( string ): Object ID of the member's contact if the member is an existing contact.
- folder_id ( string ): Parent folder ID of the member's contact if the member is an existing contact.
- display_name ( string ): The display name.
- sort_name ( string ): A name which can be used for sorting.
- mail ( string ): The email address (optional if you are referring to an internal contact).
-
mail_field
(
integer
, possibleValues:
0
1
2
3
* 0 (independent contact),
* 1 (default email field, email1),
* 2 (second email field, email2),
* 3 (third email field, email3)
-
DriveFileVersionMetadata
{- name ( string ): The name of the file version.
- file_size ( integer ): The file size of the version in bytes.
- created ( integer ): The file version's creation time (always UTC, not translated into user time).
- modified ( integer ): The file version's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- version ( string ): The version identifier (usually, but not necessarily a numerical value) of the file version.
- version_comment ( string ): An additional comment for the file version.
-
DriveNotificationData
{- transport ( string ): Can contain the transport mechanism to use, defaults to "mail".
- message ( string ): A notification message.
Responses:
200:
A JSON object containing the metadata of the requested file version. In case of errors the responsible fields in the response are filled. Problems that occurrend during notification are included as warnings.
Content-type: application/json-
DriveFileResponse
{- data ( DriveFileMetadata ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveFileMetadata
{- name ( string ): The name of the file the metadata belongs to.
- checksum ( string ): The file's checksum. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- path ( string ): The path of the parent directory. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- content_type ( string ): The content type of the file.
- preview ( string ): A URL to a preview image for the file.
- thumbnail ( string ): A URL to a thumbnail image for the file.
- object_permissions ( array[DriveObjectPermission] ): An array of all file permissions.
- extended_object_permissions ( array[DriveObjectExtendedPermission] ): An array of all file permissions including some additional information.
- shared ( boolean ): `true` if the file is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the file can be shared to others by the user, `false` or not set, otherwise.
- locked ( boolean ): `true` if the file is locked, `false` or not set, otherwise.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the file, like "preview", etc.
- number_of_versions ( integer ): The number of all versions of the file.
- version ( string ): The current version identifier (usally, but not necessarily a numerical value) of the file.
- version_comment ( string ): An additional comment for the file version.
- versions ( array[DriveFileVersionMetadata] ): Metadata for all versions of the file.
-
DriveObjectPermission
{-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies.
- group ( boolean ): Is `true` if entity refers to a group, `false` if it refers to a user.
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
-
bits
(
integer
, possibleValues:
-
DriveObjectExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - type ( string ): "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( ContactData ): No description available
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
-
ContactData Composed Schema
ALLOF: Object Object -
Unknown
{- id ( string ): Object ID.
- created_by ( integer , read only ): User ID of the user who created this object.
- modified_by ( integer , read only ): User ID of the user who last modified this object.
- creation_date ( integer , read only ): Date and time of creation.
- last_modified ( integer , read only ): Date and time of the last modification.
- folder_id ( string ): Object ID of the parent folder.
- categories ( string ): String containing comma separated the categories. Order is preserved. Changing the order counts as modification of the object. Not present in folder objects.
- private_flag ( boolean ): Overrides folder permissions in shared private folders: When `true`, this object is not visible to anyone except the owner. Not present in folder objects.
- color_label ( integer ): Color number used by Outlook to label the object. The assignment of colors to numbers is arbitrary and specified by the client. The numbers are integer numbers between 0 and 10 (inclusive). Not present in folder objects.
- number_of_attachments ( integer ): Number of attachments.
- lastModifiedOfNewestAttachmentUTC ( integer ): Timestamp of the newest attachment written with UTC time zone.
-
DistributionListMember
{- id ( string ): Object ID of the member's contact if the member is an existing contact.
- folder_id ( string ): Parent folder ID of the member's contact if the member is an existing contact.
- display_name ( string ): The display name.
- sort_name ( string ): A name which can be used for sorting.
- mail ( string ): The email address (optional if you are referring to an internal contact).
-
mail_field
(
integer
, possibleValues:
0
1
2
3
* 0 (independent contact),
* 1 (default email field, email1),
* 2 (second email field, email2),
* 3 (third email field, email3)
-
DriveFileVersionMetadata
{- name ( string ): The name of the file version.
- file_size ( integer ): The file size of the version in bytes.
- created ( integer ): The file version's creation time (always UTC, not translated into user time).
- modified ( integer ): The file version's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- version ( string ): The version identifier (usually, but not necessarily a numerical value) of the file version.
- version_comment ( string ): An additional comment for the file version.
Examples:
Example1: Basic example==> PUT http://192.168.32.191/ajax/drive?action=updateFile&session=35d55f0bd2284e78a8eb4dba99b1310b&root=9542&path=/&name=test.txt&checksum=8acde36677ebedb9e541f4918015dacc > Content: { "file": { "object_permissions": [{ "type": "guest", "email_address": "otto@example.com", "display_name": "Otto Example", "bits": 2 }] }, "notification": { "message": "Look!" } } <== HTTP 200 OK (132.7421 ms elapsed, 11 bytes received) < Content: { "data": { "name": "test.txt", "created": 1623400646190, "modified": 1628673526476, "created_by": 14, "modified_by": 14, "content_type": "text/plain", "object_permissions": [ { "entity": 15, "group": false, "bits": 2 } ], "extended_object_permissions": [ { "entity": 15, "bits": 2, "type": "guest", "contact": { "email1": "otto@example.com", "image1_url": "/ajax/contacts/picture?action=get&user_id=15×tamp=1620303119498" } } ], "shared": true, "shareable": true, "number_of_versions": 1, "version": "1", "jump": [ "permissions", "version_history" ], "path": "/", "checksum": "8acde36677ebedb9e541f4918015dacc" } }
-
-
Gets all files and directories within the synchronized tree that are shared to others.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string Responses:
200:
A JSON object containing the fields `directories` and `files` with metadata objects of the shared items. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveSharesResponse
{- data ( DriveSharesData ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveSharesData
{- directories ( array[DriveDirectoryMetadata] ): An array of metadata objects describing the shared folders.
- files ( array ): An array of metadata objects describing the shared files.
-
DriveDirectoryMetadata
{- id ( string ): The server-side unique identifier of the directory.
- localized_name ( string ): The localized display name of the directory.
- checksum ( string ): The directory's checksum. Only set if metadata is not retrieved through Metadata synchronization.
- own_rights ( integer ): Folder permissions which apply to the current user, as described in OX HTTP API, Flags / bit masks.
- permissions ( array[DriveFolderPermission] ): An array of all folder permissions.
- extended_permissions ( array[DriveFolderExtendedPermission] ): An array of all folder permissions including some additional information.
- default_folder ( boolean ): `true` if the folder is a default folder, `false` or not set, otherwise.
- has_subfolders ( boolean ): `true` if the folder (potentially) has subfolders, `false` or not set, otherwise.
- shared ( boolean ): `true` if the folder is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the folder can be shared to others by the user, `false` or not set, otherwise.
- not_synchronizable ( boolean ): `true` if the folder is excluded from synchronization, `false` or not set, otherwise.
- type ( integer ): The specifal folder type, or not set, if not available.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the folder, like "permissions", etc.
- files ( array[DriveFileMetadata] ): Metadata for the contained files. Only set if metadata is retrieved through Metadata synchronization.
- name ( string ): The name of the folder.
- path ( string ): The path of the folder.
-
DriveFolderPermission
{- bits ( integer ): For non-mail folders, a number as described in Permission flags.
- rights ( string ): For mail folders, the rights string as defined in RFC 2086.
- identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies (ignored for type "anonymous" or "guest").
- group ( boolean ): Set `true` if entity refers to a group, `false` if it refers to a user (ignored for type "anonymous" or "guest").
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
- includeSubfolders ( boolean ): If this permission is applied to subfolders (for type "anonymous", optional).
-
DriveFolderExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
- bits ( integer ): A number as described in Permission flags.
- type ( string ): Set "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( contact ): A (reduced) set of Detailed contact data for "user" and "guest" entities.
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
- includeSubfolders ( boolean ): The optionally set "include subfolders" option for "anonymous" entities.
- isInherited ( boolean ): A flag indicating whether the permissions is inherited from the parent folder or not. The client must not allow the user to delete or update inherited permissions.
- isInheritedFrom ( integer ): If this permission is handed down from a parent folder (isInherited is set to `true`) this field contains the id of the sharing folder.
-
DriveFileMetadata
{- name ( string ): The name of the file the metadata belongs to.
- checksum ( string ): The file's checksum. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- path ( string ): The path of the parent directory. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- content_type ( string ): The content type of the file.
- preview ( string ): A URL to a preview image for the file.
- thumbnail ( string ): A URL to a thumbnail image for the file.
- object_permissions ( array[DriveObjectPermission] ): An array of all file permissions.
- extended_object_permissions ( array[DriveObjectExtendedPermission] ): An array of all file permissions including some additional information.
- shared ( boolean ): `true` if the file is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the file can be shared to others by the user, `false` or not set, otherwise.
- locked ( boolean ): `true` if the file is locked, `false` or not set, otherwise.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the file, like "preview", etc.
- number_of_versions ( integer ): The number of all versions of the file.
- version ( string ): The current version identifier (usally, but not necessarily a numerical value) of the file.
- version_comment ( string ): An additional comment for the file version.
- versions ( array[DriveFileVersionMetadata] ): Metadata for all versions of the file.
-
DriveObjectPermission
{-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies.
- group ( boolean ): Is `true` if entity refers to a group, `false` if it refers to a user.
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
-
bits
(
integer
, possibleValues:
-
DriveObjectExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - type ( string ): "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( ContactData ): No description available
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
-
ContactData Composed Schema
ALLOF: Object Object -
Unknown
{- id ( string ): Object ID.
- created_by ( integer , read only ): User ID of the user who created this object.
- modified_by ( integer , read only ): User ID of the user who last modified this object.
- creation_date ( integer , read only ): Date and time of creation.
- last_modified ( integer , read only ): Date and time of the last modification.
- folder_id ( string ): Object ID of the parent folder.
- categories ( string ): String containing comma separated the categories. Order is preserved. Changing the order counts as modification of the object. Not present in folder objects.
- private_flag ( boolean ): Overrides folder permissions in shared private folders: When `true`, this object is not visible to anyone except the owner. Not present in folder objects.
- color_label ( integer ): Color number used by Outlook to label the object. The assignment of colors to numbers is arbitrary and specified by the client. The numbers are integer numbers between 0 and 10 (inclusive). Not present in folder objects.
- number_of_attachments ( integer ): Number of attachments.
- lastModifiedOfNewestAttachmentUTC ( integer ): Timestamp of the newest attachment written with UTC time zone.
-
DistributionListMember
{- id ( string ): Object ID of the member's contact if the member is an existing contact.
- folder_id ( string ): Parent folder ID of the member's contact if the member is an existing contact.
- display_name ( string ): The display name.
- sort_name ( string ): A name which can be used for sorting.
- mail ( string ): The email address (optional if you are referring to an internal contact).
-
mail_field
(
integer
, possibleValues:
0
1
2
3
* 0 (independent contact),
* 1 (default email field, email1),
* 2 (second email field, email2),
* 3 (third email field, email3)
-
DriveFileVersionMetadata
{- name ( string ): The name of the file version.
- file_size ( integer ): The file size of the version in bytes.
- created ( integer ): The file version's creation time (always UTC, not translated into user time).
- modified ( integer ): The file version's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- version ( string ): The version identifier (usually, but not necessarily a numerical value) of the file version.
- version_comment ( string ): An additional comment for the file version.
Examples:
Example1: Basic example==> GET http://192.168.32.191/ajax/drive?action=shares&session=35d55f0bd2284e78a8eb4dba99b1310b&root=9542 <== HTTP 200 OK (191.2707 ms elapsed, 5339 bytes received) < Content: { "data": { "directories": [{ "id": "316770", "name": "test", "checksum": "bef03e92c3c675c1a6efddc831ac21b9", "localized_name": "test", "path": "/test", "created": 1437989289761, "modified": 1438176370780, "own_rights": 403710016, "permissions": [{ "bits": 403710016, "entity": 182, "display_name": "Mander, Jens", "email_address": "jens.mander@example.com", "type": "user" }, { "bits": 135274497, "entity": 8340, "display_name": "Otto Example", "email_address": "otto@example.com", "type": "guest" }, { "bits": 257, "entity": 16175, "display_name": "Guest", "type": "anonymous" }], "extended_permissions": [{ "entity": 182, "bits": 403710016, "type": "user", "display_name": "Mander, Jens", "contact": { "email1": "jens.mander@example.com", "last_name": "Mander", "first_name": "Jens" } }, { "entity": 8340, "bits": 135274497, "type": "guest", "display_name": "Otto Example", "contact": { "email1": "otto@example.com" } }, { "entity": 16175, "bits": 257, "type": "anonymous", "share_url": "http://127.0.0.1/ajax/share/102b560404b3e96c9623be94b3d643829a46b117558d9ec9/31342f1f", "includeSubfolders": true }], "jump": ["permissions"], "shared": true, "shareable": true }, { "id": "300695", "name": "sharetest", "checksum": "cdfb5724f9614290a850ec507aea72a2", "localized_name": "sharetest", "path": "/sub1/check/sharetest", "created": 1430218822598, "modified": 1430218833769, "own_rights": 403710016, "permissions": [{ "bits": 257, "entity": 10, "display_name": "Klaus Mander", "email_address": "klaus.mander@example.com", "type": "user" }, { "bits": 403710016, "entity": 182, "display_name": "Mander, Jens", "email_address": "jens.mander@example.com", "type": "user" }], "extended_permissions": [{ "entity": 10, "bits": 257, "type": "user", "display_name": "Klaus Mander", "contact": { "email1": "klaus.mander@example.com", "title": "", "last_name": "Mander", "first_name": "Klaus", "image1_url": "/ajax/image/user/picture?id=10×tamp=1413376661353" } }, { "entity": 182, "bits": 403710016, "type": "user", "display_name": "Mander, Jens", "contact": { "email1": "jens.mander@example.com", "last_name": "Mander", "first_name": "Jens" } }], "jump": ["permissions"], "shared": true, "shareable": true }], "files": [{ "name": "Chrysanthemum.jpg", "created": 1438177192835, "modified": 1438177729597, "created_by": { "entity": 182, "display_name": "Mander, Jens", "email_address": "jens.mander@example.com", "type": "user" }, "modified_by": { "entity": 182, "display_name": "Mander, Jens", "email_address": "jens.mander@example.com", "type": "user" }, "preview": "http://127.0.0.1/ajax/files?action=document&folder=309373&id=309373/346541&version=1&delivery=download&scaleType=contain&width=800&height=800&rotate=true", "thumbnail": "http://127.0.0.1/ajax/files?action=document&folder=309373&id=309373/346541&version=1&delivery=download&scaleType=contain&width=100&height=100&rotate=true", "object_permissions": [{ "bits": 1, "entity": 16178, "display_name": "Guest", "type": "anonymous" }], "extended_object_permissions": [{ "entity": 16178, "bits": 1, "type": "anonymous", "share_url": "http://127.0.0.1/ajax/share/1224dd0b065f2076b6db0e665f1f441f89f1308ad2a8ad7f/167e4881" }], "shared": true, "shareable": true, "jump": ["preview", "permissions"], "path": "/Pictures", "checksum": "076e3caed758a1c18c91a0e9cae3368f" }, { "name": "data.zip", "created": 1427291138800, "modified": 1438593586254, "created_by": { "entity": 182, "display_name": "Mander, Jens", "email_address": "jens.mander@example.com", "type": "user" }, "modified_by": { "entity": 182, "display_name": "Mander, Jens", "email_address": "jens.mander@example.com", "type": "user" }, "object_permissions": [{ "bits": 4, "entity": 10, "display_name": "Klaus Mander", "email_address": "klaus.mander@example.com", "type": "user" }, { "bits": 4, "entity": 8338, "display_name": "Horst Example", "email_address": "horst@example.com", "type": "guest" }, { "bits": 1, "entity": 11224, "display_name": "Guest", "type": "anonymous" }], "extended_object_permissions": [{ "entity": 10, "bits": 4, "type": "user", "display_name": "Klaus Mander", "contact": { "email1": "klaus.mander@example.com", "title": "", "last_name": "Mander", "first_name": "Klaus", "image1_url": "/ajax/image/user/picture?id=10×tamp=1413376661353" } }, { "entity": 8338, "bits": 4, "type": "guest", "display_name": "Horst Example", "contact": { "email1": "horst@example.com" } }, { "entity": 11224, "bits": 1, "type": "anonymous", "share_url": "http://127.0.0.1/ajax/share/1f74962e0b55529663dfbc3b55794ea59b753c9301c0da75/76c846ae" }], "shared": true, "shareable": true, "jump": ["permissions"], "path": "/Projects/ACME", "checksum": "d63540e8f986ec305b0dd1293d8a3276" }] } }
-
-
Explicitly performs a move or rename operation for a directory. This method is intended for the situation when no phsyical copy of the synchronized data is available on the client.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string path (empty) The path to the synchronized folder, relative to the root folder, starting with `/`.
query string checksum (empty) The checksum of the directory to update.
query string newPath (empty) The new target path to apply, relative to the root folder.
query string Responses:
200:
An empty JSON object in case of a successful move. The client should perform the move operation locally afterwards, then enter a normal synchronization cycle to acknowledge any changes.
Content-type: application/json-
CommonResponse
{- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
Examples:
Example1: Basic example==> GET http://local.ox/ajax/drive?action=moveFolder&root=163114&apiVersion=6&path=%2ftest&checksum=57ff72d92073bac92f13791bf4e7baf4&newPath=%2ftest3&session=9eabd980fead41d4ac81d32f6c86da5b <== HTTP 200 OK (90.064 ms elapsed, 11 bytes received) < Content: { "data": {} }
-
-
Deletes a previously created link for a file or folder. This action is only available for items marked as
shareable
.Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string Body:
Description:A JSON object describing the target file- or directory version to delete the link for.
Content-type: application/json-
DriveShareTargetData
{- name ( string ): The name of the file, including its extension, e.g. "test.doc". Not set if the target is a directory.
- path ( string ): The path of the (file's parent) directory, relative to the root folder.
- checksum ( string ): The MD5 hash of the file or directory, expressed as a lowercase hexadecimal number string, 32 characters long, e.g. "f8cacac95379527cd4fa15f0cb782a09".
Responses:
200:
A JSON object containing the (possibly) updated share target. In case of errors the corresponding fields in the response are filled.
Content-type: application/json-
DriveShareLinkResponse
{- data ( DriveShareLinkData ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveShareLinkData
{- checksum ( string ): The current checksum of the share target (available since v7.8.1).
- url ( string ): The link to share (read-only).
- entity ( integer ): The identifier of the anonymous user entity for the share (read-only).
- is_new ( boolean ): Whether the share link is new, i.e. it has been created by the `/share/management?action=getLink` request, or if it already existed (read-only).
- expiry_date ( integer ): The end date / expiration time after which the share link is no longer accessible (always UTC, not translated into user time).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share.
- includeSubfolders ( boolean ): An optional flag indicating if subfolders are included or not. Only applicable for shared infostore folders.
- meta ( meta ): Can be used by the client to save arbitrary JSON data along with the share.
Examples:
Example1: Basic example==> PUT http://192.168.32.191/ajax/drive?action=deleteLink&session=35d55f0bd2284e78a8eb4dba99b1310b&root=9542 > Content: { "path": "/", "name": "photo.jpg", "checksum": "bdf3bf1da3405725be763540d6601144" } <== HTTP 200 OK (149.3251 ms elapsed, 11 bytes received) < Content: { "data": {} }
-
-
Additional metadata of synchronized files is made available.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string path (empty) The path to the synchronized folder, relative to the root folder, starting with `/`.
query string columns (empty) A comma-separated list of numeric column identifiers representing additional metadata that is relevant for the client. See File metadata.
query string Body:
Description:A JSON array containing JSON objects representing the file versions to get metadata for. Each object in the array needs to be present in the referenced path.
Content-type: application/json-
DriveFileVersion - A file in a directory is uniquely identified by its filename and the checksum of its content.
{- name ( string ): The name of the file, including its extension, e.g. "test.doc".
- checksum ( string ): The MD5 hash of the file, expressed as a lowercase hexadecimal number string, 32 characters long, e.g. "f8cacac95379527cd4fa15f0cb782a09".
Responses:
200:
A JSON object containing an array with file metadata in the order of the requested file versions. Each array element describes one file metadata and is itself an array. The elements of each array contain the information specified by the corresponding identifiers in the `columns` parameter. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveFileMetadataResponse
{- data ( array[array[object]] ): Array of file metadata. Each file metadata is described as an array itself.
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
Examples:
Example1: Basic example==> PUT http://192.168.32.191/ajax/drive?action=fileMetadata&root=97974&path=%2f&columns=702%2c708%2c752%2c750%2c753&session=43aca91a80de42559ff0c2493dd973d0 > Content: [ { "name" : "image.jpg", "checksum" : "2b04df3ecc1d94afddff082d139c6f15" }, { "name" : "song.mp3", "checksum" : "5a9a91184e611dae3fed162b8787ce5f" }, { "name" : "test1.txt", "checksum" : "7e36f409a042f06ecb88606a97a88c8f" }, { "name" : "test3.txt", "checksum" : "703bc9aabff33faf07cf121dcda12ec8" } ] <== HTTP 200 OK (6.0004 ms elapsed, 140 bytes received) < Content: [ ["image.jpg", "2b04df3ecc1d94afddff082d139c6f15", "https://192.168.32.191/ox6/index.html#m=infostore&f=97974&i=179629", "https://192.168.32.191/ajax/files?action=document&folder=97974&id=179629&version=1&delivery=download&scaleType=contain&width=128&height=90", "m=infostore&f=97974&i=179629"], ["song.mp3", "5a9a91184e611dae3fed162b8787ce5f", "https://192.168.32.191/ox6/index.html#m=infostore&f=97974&i=179630", "https://192.168.32.191/ajax/image/file/mp3Cover?folder=97974&id=179630&version=1&delivery=download&scaleType=contain&width=128&height=90", "m=infostore&f=97974&i=179630"], ["test1.txt", "7e36f409a042f06ecb88606a97a88c8f", "https://192.168.32.191/ox6/index.html#m=infostore&f=97974&i=179626", null, "m=infostore&f=97974&i=179626"], ["test3.txt", "703bc9aabff33faf07cf121dcda12ec8", "https://192.168.32.191/ox6/index.html#m=infostore&f=97974&i=179624", null, "m=infostore&f=97974&i=179624"] ]
-
-
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string apiVersion (empty) The API version that the client is using. If not set, the initial version 0 is assumed.
query integer language (empty) The locale to use for language-sensitive setting (in the format `<2-letter-language>_<2-letter-regin>`, e.g. `de_CH` or `en_GB`). Defaults to the user's configured locale on the server.
query string Responses:
200:
A JSON object holding the settings. This also includes a JSON array with the property name `quota` that contains zero, one or two quota objects, depending on the filestore configuration. If one or more quota types are missoing in the array, the client can expect that there are no limitations for that type. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveSettingsResponse
{- data ( DriveSettingsData ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveSettingsData
{- quota ( array[DriveQuota] ): An array containing the quota restrictions. A size of zero represents unlimited quota.
- quotaManageLink ( string ): A hyperlink to an URL where the user could manage his quota restrictions.
- helpLink ( string ): A hyperlink to the online help.
- serverVersion ( string ): The server version, like "7.8.1-Rev8".
- supportedApiVersion ( string ): The API version suppirted by the server.
- minApiVersion ( string ): The API version required to synchronize with the server.
- localizedFolderNames ( localizedFolderNames ): A JSON object mapping the (relative) paths of directories to their localized name (based on the supplied `language` or the user's locale), like `{"/Drive/My Files": "Meine Dateien"}` (available since v7.8.1).
- capabilities ( array[string] ): An array holding relevant capabilities of the user, like "invite_guests" (available since v7.8.1).
- pathToRoot ( string ): Path to internal 'real' root folder from given rootFolderId
- localizedPathToRoot ( string ): Localized path to internal 'real' root folder from given rootFolderId (based on the supplied `language` or the user's locale).
-
DriveQuota
{- type ( string ): The kind of quota restriction, currently either `storage` (size of contained files in bytes) or `file` (number of files).
- limit ( integer ): The allowed limit (either number of files or sum of file sizes in bytes).
- use ( integer ): The current usage (again either number of files or sum of file sizes in bytes).
Examples:
Example1: Basic example==> GET http://192.168.32.191/ajax/drive?action=settings&root=56&session=35cb8c2d1423480692f0d5053d14ba52 <== HTTP 200 OK (11.3530 ms elapsed, 318 bytes received) < Content: { "data" : { "quota" : [{ "limit" : 107374182400, "use" : 8828427, "type" : "storage" }, { "limit" : 800000000000, "use" : 1559, "type" : "file" } ], "helpLink" : "http://192.168.32.191/appsuite/help-drive/l10n/de_DE/index.html", "quotaManageLink" : "http://192.168.32.191/manageQuota", "serverVersion" : "7.8.1-Rev1", "supportedApiVersion" : "4", "minApiVersion" : "1", "localizedFolderNames": { "/Documents": "Dokumente", "/Music": "Musik", "/Pictures": "Bilder", "/": "Meine Dateien", "/Documents/Templates": "Vorlagen" }, "capabilities" : [ "invite_guests", "share_links", "invite_users_and_groups" ] } }
-
-
Performs a "starts-with" search to find users, contacts and groups, e.g. to look up recipients when sharing a folder or item. Prior triggering the request, clients should check the user input against the configured value of minSearchChars received in the Settings request.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string query (empty) The query to search for (no need to include additional wildcards).
query string Responses:
200:
A JSON array holding the found users, contacts and groups. Each element is an object as described in HTTP API (Extended Permission Object), without the "bits" property set. For external contacts, the fields "entity" and "type" are also not set.
Content-type: application/json
Examples:
Example1: Basic example==> GET http://192.168.32.191/ajax/drive?action=autocomplete&query=tes&session=35d55f0bd2284e78a8eb4dba99b1310b <== HTTP 200 OK (184.0234 ms elapsed, 52 bytes received) < Content: { "data": [{ "contact": { "email1": "test1@local.ox", "last_name": "test1", "first_name": "test1" }, "display_name": "Test User 1", "type": "user", "entity": 6 }, { "contact": { "email1": "test4@local.ox", "last_name": "test4", "first_name": "test4", "image1_url": "/ajax/image/user/picture?id=13×tamp=1453973021020" }, "display_name": "Test User 4", "type": "user", "entity": 13 }, { "contact": { "email1": "test@example.org", "last_name": "Test", "first_name": "Otto", "image1_url": "/ajax/image/contact/picture?folder=31&id=118493×tamp=1465481052986" }, "display_name": "Test, Otto" }, { "entity": 3851, "type": "group", "display_name": "Test Group" }] }
-
Registers a client device to receive push notifications from the server. The subscription is performed based on the configured root folder ID or domain of the client application that identifies itself with it's device token. Supported services currently include the Apple Push Notification Service (APN) and Firebase Cloud Messaging (FCM). Trying to perform an identical subscription (same
root
/domain
,service
, andtoken
) from the same user account again is treated as a no-op.Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string service (empty) The name of the underlying push service to use, currently one of fcm, apn, or apn2. The 'gcm' service was deprecated and superseded by 'fcm'. If 'gcm' is supplied, a warning will be returned to the client. The subscription request will go through but with the new 'fcm' service id.
query string token (empty) The device's registration token as assigned by the service.
query string mode The subscription mode supported by the client. If set to "separate", SYNC actions for directory versions where changes occurred will be returned if possible.
query string domain The push domain representing the root of the folder subtree to receive notifications for.
query string Responses:
200:
An empty JSON result. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
CommonResponse
{- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
Examples:
Example1: Basic example==> GET http://192.168.32.191/ajax/drive?action=subscribe&root=65841&session=51378e29f82042b4afe4af1c034c6d68&service=apn&token=28919862989a1b5ba59c11d5f7cb7ba2b9678be9dd18b033184d04f682013677&mode=separate <== HTTP 200 OK (13.6268 ms elapsed, 11 bytes received) < Content: { "data" : { } }
-
-
Registers a client device to receive push notifications from the server. Supported services currently include the Apple Push Notification Service (APN) and Google Cloud Messaging (GCM). Trying to perform an identical subscription from the same user account again is treated as a no-op.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string service (empty) The name of the underlying push service to use, currently one of gcm, apn, or apn.macos.
query string token (empty) The device's registration token as assigned by the service.
query string mode The subscription mode supported by the client. If set to "separate", SYNC actions for directory versions where changes occurred will be returned if possible.
query string Body:
Description:A JSON object named "root" holding a JSON array of those root folder identifiers to subscribe to. Alternatively, a JSON array named "domain" can be set representing the roots of the folder subtree to receive notifications for.
Content-type: application/x-www-form-urlencoded-
Unknown
Responses:
200:
An empty JSON result. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
CommonResponse
{- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
Examples:
Example1: Basic example==> PUT http://192.168.32.191/ajax/drive?action=subscribe&session=51378e29f82042b4afe4af1c034c6d68&service=apn&token=28919862989a1b5ba59c11d5f7cb7ba2b9678be9dd18b033184d04f682013677&mode=separate > Content: { "root": [ "129136", "129137" ] }, <== HTTP 200 OK (132.7421 ms elapsed, 11 bytes received) < Content: { "data": {} }
-
-
Updates a previously created link for a file or folder. This action is only available for items marked as
shareable
.Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string Body:
Description:A JSON object containing the updated data of the share link as well as the share target. Only modified fields should be set.
Content-type: application/json-
DriveShareLinkUpdateBody
{- name ( string ): The name of the file, including its extension, e.g. "test.doc". Not set if the target is a directory.
- path ( string ): The path of the (file's parent) directory, relative to the root folder.
- checksum ( string ): The MD5 hash of the file or directory, expressed as a lowercase hexadecimal number string, 32 characters long, e.g. "f8cacac95379527cd4fa15f0cb782a09".
- url ( string ): The link to share (read-only).
- entity ( integer ): The identifier of the anonymous user entity for the share (read-only).
- is_new ( boolean ): Whether the share link is new, i.e. it has been created by the `/share/management?action=getLink` request, or if it already existed (read-only).
- expiry_date ( integer ): The end date / expiration time after which the share link is no longer accessible (always UTC, not translated into user time).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share.
- includeSubfolders ( boolean ): An optional flag indicating if subfolders are included or not. Only applicable for shared infostore folders.
- meta ( meta ): Can be used by the client to save arbitrary JSON data along with the share.
Responses:
200:
A JSON object containing details about the share link, including its URL. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveShareLinkResponse
{- data ( DriveShareLinkData ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveShareLinkData
{- checksum ( string ): The current checksum of the share target (available since v7.8.1).
- url ( string ): The link to share (read-only).
- entity ( integer ): The identifier of the anonymous user entity for the share (read-only).
- is_new ( boolean ): Whether the share link is new, i.e. it has been created by the `/share/management?action=getLink` request, or if it already existed (read-only).
- expiry_date ( integer ): The end date / expiration time after which the share link is no longer accessible (always UTC, not translated into user time).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share.
- includeSubfolders ( boolean ): An optional flag indicating if subfolders are included or not. Only applicable for shared infostore folders.
- meta ( meta ): Can be used by the client to save arbitrary JSON data along with the share.
Examples:
Example1: Basic example==> PUT http://192.168.32.191/ajax/drive?action=updateLink&session=35d55f0bd2284e78a8eb4dba99b1310b&root=9542 > Content: { "path": "/", "name": "photo.jpg", "checksum": "bdf3bf1da3405725be763540d6601144", "password": "secret", "expiry_date": 1451606400000 } <== HTTP 200 OK (341.8978 ms elapsed, 218 bytes received) < Content: { "data": { "url": "http://127.0.0.1/ajax/share/17bc4ac00d424e85ef5272dd427342438e7f20b415aba46c/4df04226", "is_new": false, "checksum": "bdf3bf1da3405725be763540d6601144", "password": "secret", "expiry_date": 1451606400000 } }
-
-
This request performs the selective synchronization of a single folder, resulting in different actions that should be executed on the client afterwards.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string apiVersion (empty) The API version that the client is using. If not set, the initial version 0 is assumed.
query integer version (empty) The current client version (matching the pattern `^[0-9]+(\\.[0-9]+)*$). If not set, the initial version 0 is assumed.
query string diagnostics (empty) If set to `true`, an additional diagnostics trace is supplied in the response.
query boolean quota (empty) If set to `true`, additional quota information for the folder is supplied in the response.
query boolean pushToken (empty) The client's push registration token to associate it to generated events.
query string Body:
Description:A JSON object containing the fields `clientVersion` and `originalVersion` of the targeted directory. Optionally, the `fileExclusions` array may be defined.
Content-type: application/json-
DriveSyncFolderBody
{- clientVersion ( DriveDirectoryVersion , required ): A directory is uniquely identified by its full path, relative to the root folder, and the checksum of its content.
- originalVersion ( DriveDirectoryVersion , required ): A directory is uniquely identified by its full path, relative to the root folder, and the checksum of its content.
- fileExclusions ( array[DriveFilePattern] ): Defines client-side exclusion filters for files (since API version 2). See Client side filtering for further information.
-
DriveDirectoryVersion - A directory is uniquely identified by its full path, relative to the root folder, and the checksum of its content.
{- path ( string ): The path of the directory, including the directory's name, relative to the root folder, e.g. "/sub/test/letters."
- checksum ( string ): The MD5 hash of the directory, expressed as a lowercase hexadecimal number string, 32 characters long, e.g. "f8cacac95379527cd4fa15f0cb782a09".
-
DriveFilePattern
{- type ( string ): The pattern type, currently one of `exact` or `glob`, see Pattern types, too.
- path ( string ): The path pattern, in a format depending on the pattern type.
- name ( string ): The filename pattern, in a format depending on the pattern type.
- caseSensitive ( boolean ): An optional flag to enable case-sensitive matching, defaults to `false`.
Responses:
200:
A JSON object containing an array of actions the client should execute for synchronization. If the `diagnostics` parameter was set, the array is wrapped into an additional JSON object in the field `actions` and the diagnostics trace is provided at `diagnostics`. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveSyncFolderResponse
{- data ( data ): If `diagnostics` parameter is set, this is a JSON object with the fields `actions` (array of actions to execute), `diagnostics` (contains diagnostics trace), `pathToRoot`(Path to internal 'real' root folder from given rootFolderId), `localizedPathToRoot` (localized path to internal 'real' root folder from given rootFolderId based on the user's locale) and `quota`(quota limits and usage).
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
data - If `diagnostics` parameter is set, this is a JSON object with the fields `actions` (array of actions to execute), `diagnostics` (contains diagnostics trace), `pathToRoot`(Path to internal 'real' root folder from given rootFolderId), `localizedPathToRoot` (localized path to internal 'real' root folder from given rootFolderId based on the user's locale) and `quota`(quota limits and usage).
{- actions ( array[DriveAction] ): No description available
- diagnostics ( string ): The diagnostics trace.
- pathToRoot ( string ): Path to internal 'real' root folder from given rootFolderId
- localizedPathToRoot ( string ): Localized path to internal 'real' root folder from given rootFolderId (based on the user's locale).
- quota ( DriveQuotaData ): No description available
-
DriveAction
{- action ( string ): The type of action to execute, currently one of `acknowledge`, `edit`, `download`, `upload`, `remove`, `sync`, or `error`. See Action types overview, too.
- version ( Version ): The (original) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
- newVersion ( NewVersion ): The (new) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
- path ( string ): The path to the synchronized folder, relative to the root folder.
- offset ( integer ): The requested start offset in bytes for file uploads.
- totalLength ( integer ): The total length in bytes for file downloads.
- contentType ( string ): The file's content type for downloads (deprecated, available until API version 2).
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- error ( DriveSyncErrorData ): The error data in case of synchronization errors.
- quarantine ( boolean ): The flag to indicate whether the versions need to be excluded from synchronization.
- noChunks ( boolean ): The flag to indicate that no partial uploads are possible due to missing support for temporary files.
- reset ( boolean ): The flag to indicate whether locally stored checksums should be invalidated.
- stop ( boolean ): The flag to signal that the client should stop the current synchronization cycle.
- acknowledge ( boolean ): The flag to signal if the client should not update it's stored checksums when performing an `edit` action.
- thumbnailLink ( string ): A direct link to a small thumbnail image of the file if available (deprecated, available until API version 2).
- previewLink ( string ): A direct link to a medium-sized preview image of the file if available (deprecated, available until API version 2).
- directLink ( string ): A direct link to the detail view of the file in the web interface (deprecated, available until API version 2).
- directLinkFragments ( string ): The fragments part of the direct link (deprecated, available until API version 2).
-
Version - The (original) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
{- name ( string ): The name of the file. Only set for file versions.
- checksum ( string ): The checksum of the file or folder.
- path ( string ): The path of the folder. Only set for folder versions.
-
NewVersion - The (new) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
{- name ( string ): The name of the file. Only set for file versions.
- checksum ( string ): The checksum of the file or folder.
- path ( string ): The path of the folder. Only set for folder versions.
-
DriveSyncErrorData - The error data in case of synchronization errors.
{- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "DRV-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
-
DriveQuotaData
{- quota ( array[DriveQuota] ): An array of quota objects showing the quota limits and usage. A size of zero represents unlimited quota.
- manageLink ( string ): A hyperlink that points to an URL where the user can manage his quota restrictions.
-
DriveQuota
{- type ( string ): The kind of quota restriction, currently either `storage` (size of contained files in bytes) or `file` (number of files).
- limit ( integer ): The allowed limit (either number of files or sum of file sizes in bytes).
- use ( integer ): The current usage (again either number of files or sum of file sizes in bytes).
Examples:
Example: Basic example==> PUT http://192.168.32.191/ajax/drive?action=syncfolder&root=56&session=5d0c1e8eb0964a3095438b450ff6810f > Content: { "clientVersion" : { "path" : "/test1", "checksum" : "3ecc97334d7f6bf2b795988092b8137e" }, "originalVersion" : { "path" : "/test1", "checksum" : "35d1b51fdefbee5bf81d7ae8167719b8" } } <== HTTP 200 OK (17.3404 ms elapsed, 102 bytes received) < Content: { "data" : [{ "action" : "sync", "version" : { "path" : "/test1", "checksum" : "3ecc97334d7f6bf2b795988092b8137e" } } ] }
-
-
Gets statistics about the trash folder contents. If a trash folder is available or not can be checked via hasTrashFolder received in the Settings request.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string Responses:
200:
A JSON object holding the recursively accumulated folder statistics. If no trash folder is available, an empty response is returned.
Content-type: application/json-
Unknown
{- totalSize ( integer , required ): The total size of the contents in bytes.
- numFiles ( integer , required ): The total number of contained files.
- numFolders ( integer , required ): The total number of contained folders.
Examples:
Example1: Basic example==> GET http://192.168.32.191/ajax/drive?action=trashStats&session=35d55f0bd2284e78a8eb4dba99b1310b&root=9542 <== HTTP 200 OK (64.2423 ms elapsed, 67 bytes received) < Content: { "data": { "totalSize": 30904580, "numFiles": 39, "numFolders": 4 } }
-
-
Allows getting a list of folders that are available on the server for synchronization. This request should be used to build up a folder tree and let the user select the root synchronization folder(s).
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string parent (empty) The ID of the parent folder to get the subfolders for as read from a previously fetched directory metadata object.
query string Responses:
200:
A JSON object holding metadata information for all subfolders. The `files` array of the directory metadata objects will be left out. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveSubfoldersResponse
{- data ( array[DriveDirectoryMetadata] ): An array of JSON objects representing directory metadata.
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveDirectoryMetadata
{- id ( string ): The server-side unique identifier of the directory.
- localized_name ( string ): The localized display name of the directory.
- checksum ( string ): The directory's checksum. Only set if metadata is not retrieved through Metadata synchronization.
- own_rights ( integer ): Folder permissions which apply to the current user, as described in OX HTTP API, Flags / bit masks.
- permissions ( array[DriveFolderPermission] ): An array of all folder permissions.
- extended_permissions ( array[DriveFolderExtendedPermission] ): An array of all folder permissions including some additional information.
- default_folder ( boolean ): `true` if the folder is a default folder, `false` or not set, otherwise.
- has_subfolders ( boolean ): `true` if the folder (potentially) has subfolders, `false` or not set, otherwise.
- shared ( boolean ): `true` if the folder is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the folder can be shared to others by the user, `false` or not set, otherwise.
- not_synchronizable ( boolean ): `true` if the folder is excluded from synchronization, `false` or not set, otherwise.
- type ( integer ): The specifal folder type, or not set, if not available.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the folder, like "permissions", etc.
- files ( array[DriveFileMetadata] ): Metadata for the contained files. Only set if metadata is retrieved through Metadata synchronization.
- name ( string ): The name of the folder.
- path ( string ): The path of the folder.
-
DriveFolderPermission
{- bits ( integer ): For non-mail folders, a number as described in Permission flags.
- rights ( string ): For mail folders, the rights string as defined in RFC 2086.
- identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies (ignored for type "anonymous" or "guest").
- group ( boolean ): Set `true` if entity refers to a group, `false` if it refers to a user (ignored for type "anonymous" or "guest").
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
- includeSubfolders ( boolean ): If this permission is applied to subfolders (for type "anonymous", optional).
-
DriveFolderExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
- bits ( integer ): A number as described in Permission flags.
- type ( string ): Set "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( contact ): A (reduced) set of Detailed contact data for "user" and "guest" entities.
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
- includeSubfolders ( boolean ): The optionally set "include subfolders" option for "anonymous" entities.
- isInherited ( boolean ): A flag indicating whether the permissions is inherited from the parent folder or not. The client must not allow the user to delete or update inherited permissions.
- isInheritedFrom ( integer ): If this permission is handed down from a parent folder (isInherited is set to `true`) this field contains the id of the sharing folder.
-
DriveFileMetadata
{- name ( string ): The name of the file the metadata belongs to.
- checksum ( string ): The file's checksum. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- path ( string ): The path of the parent directory. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- content_type ( string ): The content type of the file.
- preview ( string ): A URL to a preview image for the file.
- thumbnail ( string ): A URL to a thumbnail image for the file.
- object_permissions ( array[DriveObjectPermission] ): An array of all file permissions.
- extended_object_permissions ( array[DriveObjectExtendedPermission] ): An array of all file permissions including some additional information.
- shared ( boolean ): `true` if the file is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the file can be shared to others by the user, `false` or not set, otherwise.
- locked ( boolean ): `true` if the file is locked, `false` or not set, otherwise.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the file, like "preview", etc.
- number_of_versions ( integer ): The number of all versions of the file.
- version ( string ): The current version identifier (usally, but not necessarily a numerical value) of the file.
- version_comment ( string ): An additional comment for the file version.
- versions ( array[DriveFileVersionMetadata] ): Metadata for all versions of the file.
-
DriveObjectPermission
{-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies.
- group ( boolean ): Is `true` if entity refers to a group, `false` if it refers to a user.
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
-
bits
(
integer
, possibleValues:
-
DriveObjectExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - type ( string ): "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( ContactData ): No description available
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
-
ContactData Composed Schema
ALLOF: Object Object -
Unknown
{- id ( string ): Object ID.
- created_by ( integer , read only ): User ID of the user who created this object.
- modified_by ( integer , read only ): User ID of the user who last modified this object.
- creation_date ( integer , read only ): Date and time of creation.
- last_modified ( integer , read only ): Date and time of the last modification.
- folder_id ( string ): Object ID of the parent folder.
- categories ( string ): String containing comma separated the categories. Order is preserved. Changing the order counts as modification of the object. Not present in folder objects.
- private_flag ( boolean ): Overrides folder permissions in shared private folders: When `true`, this object is not visible to anyone except the owner. Not present in folder objects.
- color_label ( integer ): Color number used by Outlook to label the object. The assignment of colors to numbers is arbitrary and specified by the client. The numbers are integer numbers between 0 and 10 (inclusive). Not present in folder objects.
- number_of_attachments ( integer ): Number of attachments.
- lastModifiedOfNewestAttachmentUTC ( integer ): Timestamp of the newest attachment written with UTC time zone.
-
DistributionListMember
{- id ( string ): Object ID of the member's contact if the member is an existing contact.
- folder_id ( string ): Parent folder ID of the member's contact if the member is an existing contact.
- display_name ( string ): The display name.
- sort_name ( string ): A name which can be used for sorting.
- mail ( string ): The email address (optional if you are referring to an internal contact).
-
mail_field
(
integer
, possibleValues:
0
1
2
3
* 0 (independent contact),
* 1 (default email field, email1),
* 2 (second email field, email2),
* 3 (third email field, email3)
-
DriveFileVersionMetadata
{- name ( string ): The name of the file version.
- file_size ( integer ): The file size of the version in bytes.
- created ( integer ): The file version's creation time (always UTC, not translated into user time).
- modified ( integer ): The file version's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- version ( string ): The version identifier (usually, but not necessarily a numerical value) of the file version.
- version_comment ( string ): An additional comment for the file version.
Examples:
Example1: Basic example==> GET http://192.168.32.191/ajax/drive?action=subfolders&session=35cb8c2d1423480692f0d5053d14ba52 <== HTTP 200 OK (241.0252 ms elapsed, 966 bytes received) < Content: { "data": [{ "id": "com.openexchange.file.storage.googledrive://1/", "name": "Google Drive", "path": "/Google Drive", "has_subfolders": true, "own_rights": 403710016, "permissions": [{ "bits": 403710016, "group": false, "entity": 182, "display_name": "Mander, Jens", "email_address": "jens.mander@example.com", "guest": false }], "jump": ["permissions"] }, { "id": "10", "name": "Freigegebene Dateien", "path": "/Freigegebene Dateien", "created": 1224493261628, "modified": 1417164170136, "has_subfolders": true, "own_rights": 1, "permissions": [{ "bits": 1, "group": true, "entity": 0, "display_name": "All users", "guest": false }, { "bits": 1, "group": true, "entity": 2147483647, "display_name": "Guests", "guest": false }], "jump": ["permissions"], "shared": true }, { "id": "15", "name": "Öffentliche Dateien", "path": "/Öffentliche Dateien", "created": 1224493261628, "modified": 1418383637250, "has_subfolders": true, "own_rights": 403709956, "permissions": [{ "bits": 403709956, "group": true, "entity": 0, "display_name": "All users", "guest": false }, { "bits": 1, "group": true, "entity": 2147483647, "display_name": "Guests", "guest": false }], "jump": ["permissions"], "shared": true }, { "id": "com.openexchange.file.storage.dropbox://1/", "name": "Dropbox", "path": "/Dropbox", "has_subfolders": true, "own_rights": 403710016, "permissions": [{ "bits": 403710016, "group": false, "entity": 182, "display_name": "Mander, Jens", "email_address": "jens.mander@example.com", "guest": false }], "jump": ["permissions"] }, { "id": "9542", "name": "Meine Dateien", "path": "/Meine Dateien", "created": 1320230546147, "modified": 1426764458823, "default_folder": true, "has_subfolders": true, "own_rights": 403710016, "permissions": [{ "bits": 403710016, "group": false, "entity": 182, "display_name": "Mander, Jens", "email_address": "jens.mander@example.com", "guest": false }], "jump": ["permissions"] }] }
-
-
Listens for server-side changes. The request blocks until new actions for the client are available, or the specified waiting time elapses. May return immediately if previously received but not yet processed actions are available for this client.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string timeout (empty) The maximum timeout in milliseconds to wait.
query long pushToken (empty) The client's push registration token to associate it to generated events.
query string mode The subscription mode supported by the client. If set to "separate", SYNC actions for directory versions where changes occurred will be returned if possible.
query string Responses:
200:
A JSON object containing an array of actions the client should execute for synchronization. if no changes were detected, an empty array is returned. Typically, the client will continue with the next `/drive?action=listen` request after the response was processed. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveListenResponse
{- data ( array[DriveAction] ): An array containing the actions the client should execute for synchronization.
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveAction
{- action ( string ): The type of action to execute, currently one of `acknowledge`, `edit`, `download`, `upload`, `remove`, `sync`, or `error`. See Action types overview, too.
- version ( Version ): The (original) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
- newVersion ( NewVersion ): The (new) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
- path ( string ): The path to the synchronized folder, relative to the root folder.
- offset ( integer ): The requested start offset in bytes for file uploads.
- totalLength ( integer ): The total length in bytes for file downloads.
- contentType ( string ): The file's content type for downloads (deprecated, available until API version 2).
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- error ( DriveSyncErrorData ): The error data in case of synchronization errors.
- quarantine ( boolean ): The flag to indicate whether the versions need to be excluded from synchronization.
- noChunks ( boolean ): The flag to indicate that no partial uploads are possible due to missing support for temporary files.
- reset ( boolean ): The flag to indicate whether locally stored checksums should be invalidated.
- stop ( boolean ): The flag to signal that the client should stop the current synchronization cycle.
- acknowledge ( boolean ): The flag to signal if the client should not update it's stored checksums when performing an `edit` action.
- thumbnailLink ( string ): A direct link to a small thumbnail image of the file if available (deprecated, available until API version 2).
- previewLink ( string ): A direct link to a medium-sized preview image of the file if available (deprecated, available until API version 2).
- directLink ( string ): A direct link to the detail view of the file in the web interface (deprecated, available until API version 2).
- directLinkFragments ( string ): The fragments part of the direct link (deprecated, available until API version 2).
-
Version - The (original) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
{- name ( string ): The name of the file. Only set for file versions.
- checksum ( string ): The checksum of the file or folder.
- path ( string ): The path of the folder. Only set for folder versions.
-
NewVersion - The (new) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
{- name ( string ): The name of the file. Only set for file versions.
- checksum ( string ): The checksum of the file or folder.
- path ( string ): The path of the folder. Only set for folder versions.
-
DriveSyncErrorData - The error data in case of synchronization errors.
{- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "DRV-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
Examples:
Example1: Basic example==> GET http://192.168.32.191/ajax/drive?action=listen&root=65841&session=51378e29f82042b4afe4af1c034c6d68 <== HTTP 200 OK (63409.6268 ms elapsed, 28 bytes received) < Content: { "data" : [{ "action" : "sync" } ] }
-
-
Listens for server-side changes on moultiple root folders. The request blocks until new actions for the client are available, or the specified waiting time elapses. May return immediately if previously received but not yet processed actions are available for this client.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string timeout (empty) The maximum timeout in milliseconds to wait.
query long pushToken (empty) The client's push registration token to associate it to generated events.
query string Body:
Description:A JSON object named root holding a JSON array of those root folder identifiers to listen for changes in.
Content-type: application/x-www-form-urlencoded-
Unknown
Responses:
200:
A JSON array containing all actions the client should execute for synchronization. Each array element is an action as described in Actions. The relevant root folder identifier is available in the root parameter of the action. If there are no changes were detected, an empty array is returned. Typically, the client will continue with the next listen request after the response was processed.
Content-type: application/json-
DriveListenResponse
{- data ( array[DriveAction] ): An array containing the actions the client should execute for synchronization.
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveAction
{- action ( string ): The type of action to execute, currently one of `acknowledge`, `edit`, `download`, `upload`, `remove`, `sync`, or `error`. See Action types overview, too.
- version ( Version ): The (original) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
- newVersion ( NewVersion ): The (new) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
- path ( string ): The path to the synchronized folder, relative to the root folder.
- offset ( integer ): The requested start offset in bytes for file uploads.
- totalLength ( integer ): The total length in bytes for file downloads.
- contentType ( string ): The file's content type for downloads (deprecated, available until API version 2).
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- error ( DriveSyncErrorData ): The error data in case of synchronization errors.
- quarantine ( boolean ): The flag to indicate whether the versions need to be excluded from synchronization.
- noChunks ( boolean ): The flag to indicate that no partial uploads are possible due to missing support for temporary files.
- reset ( boolean ): The flag to indicate whether locally stored checksums should be invalidated.
- stop ( boolean ): The flag to signal that the client should stop the current synchronization cycle.
- acknowledge ( boolean ): The flag to signal if the client should not update it's stored checksums when performing an `edit` action.
- thumbnailLink ( string ): A direct link to a small thumbnail image of the file if available (deprecated, available until API version 2).
- previewLink ( string ): A direct link to a medium-sized preview image of the file if available (deprecated, available until API version 2).
- directLink ( string ): A direct link to the detail view of the file in the web interface (deprecated, available until API version 2).
- directLinkFragments ( string ): The fragments part of the direct link (deprecated, available until API version 2).
-
Version - The (original) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
{- name ( string ): The name of the file. Only set for file versions.
- checksum ( string ): The checksum of the file or folder.
- path ( string ): The path of the folder. Only set for folder versions.
-
NewVersion - The (new) file- or directory-version referenced by the action. See FileVersion and DirectoryVersion model.
{- name ( string ): The name of the file. Only set for file versions.
- checksum ( string ): The checksum of the file or folder.
- path ( string ): The path of the folder. Only set for folder versions.
-
DriveSyncErrorData - The error data in case of synchronization errors.
{- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "DRV-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
Examples:
Example1: Basic example==> PUT http://192.168.32.191/ajax/drive?action=listen&session=51378e29f82042b4afe4af1c034c6d68 > Content: { "root": [ "129136", "129137" ] }, <== HTTP 200 OK (132.7421 ms elapsed, 11 bytes received) < Content: { "data" : [{ "action" : "sync", "root" : "129137" } ] }
-
-
Unregisters a previously registered client device to stop receiving push notifications from the server. The same parameters that were used to perform the subscription need to be passed again, which includes the root folder ID or domain, the device token and the service name. If no root / domain is present, all susbcriptions for the token / service are removed implicitly.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string service (empty) The name of the underlying push service to use, currently one of fcm, apn, or apn2. The 'gcm' service was deprecated and superseded by 'fcm'. If 'gcm' is supplied, a warning will be returned to the client. The subscription request will go through but with the new 'fcm' service id.
query string token (empty) The device's registration token as assigned by the service.
query string domain The push domain representing the root of the folder subtree to remove the notifications for.
query string Responses:
200:
An empty JSON result. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
CommonResponse
{- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
Examples:
Example1: Basic example==> GET http://192.168.32.191/ajax/drive?action=unsubscribe&root=65841&session=51378e29f82042b4afe4af1c034c6d68&service=apn&token=28919862989a1b5ba59c11d5f7cb7ba2b9678be9dd18b033184d04f682013677 <== HTTP 200 OK (26.0015 ms elapsed, 11 bytes received) < Content: { "data" : { } }
-
-
Unregisters a previously registered client device to stop receiving push notifications from the server.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string service (empty) The name of the underlying push service to use, currently one of gcm, apn, or apn.macos.
query string token (empty) The device's registration token as assigned by the service.
query string Body:
Description:A JSON object named "root" holding a JSON array of those root folder identifiers to unsubscribe from. Alternatively, a JSON array named "domain" can be set representing the roots of the folder subtree to remove the notifications for.
Content-type: application/x-www-form-urlencoded-
Unknown
Responses:
200:
An empty JSON result. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
CommonResponse
{- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
Examples:
Example1: Basic example==> PUT http://192.168.32.191/ajax/drive?action=unsubscribe&session=51378e29f82042b4afe4af1c034c6d68&service=apn&token=28919862989a1b5ba59c11d5f7cb7ba2b9678be9dd18b033184d04f682013677 > Content: { "root": [ "129136", "129137" ] }, <== HTTP 200 OK (132.7421 ms elapsed, 11 bytes received) < Content: { "data": {} }
-
-
(Re-)Sends a share notification to one or more permission entities of a specific shared file or folder.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string Body:
Description:A JSON object describing the target file- or directory version to send the notification for. The entity IDs of the recipients are listed in a JSON array named `entities`. Optionally, an additional JSON object `notification` may be included, inside of which a custom `message` can be passed (otherwise, some default message is used).
Content-type: application/json-
DriveSharingNotificationBody
{- entities ( array[integer] ): An array of entity IDs representing the recipients of the notification.
- notification ( DriveNotificationData ): No description available
- name ( string ): The name of the file, including its extension, e.g. "test.doc". Not set if the target is a directory.
- path ( string ): The path of the (file's parent) directory, relative to the root folder.
- checksum ( string ): The MD5 hash of the file or directory, expressed as a lowercase hexadecimal number string, 32 characters long, e.g. "f8cacac95379527cd4fa15f0cb782a09".
-
DriveNotificationData
{- transport ( string ): Can contain the transport mechanism to use, defaults to "mail".
- message ( string ): A notification message.
Responses:
200:
An empty JSON object. Any transport warnings that occurred during sending the notifications are available in the `warnings` field. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveNotificationResponse
{- warnings ( array[object] ): Can contain any transport warnings that occurred during sending the notifications.
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
Examples:
Example1: Basic example==> PUT http://192.168.32.191/ajax/drive?action=notify&session=35d55f0bd2284e78a8eb4dba99b1310b&root=9542 > Content: { "path": "/test", "name": "image.jpg", "checksum": "d63540e8f986ec305b0dd1293d8a3276", "entities": [10,78], "notification": { "message": "Look!" } } <== HTTP 200 OK (45.2084 ms elapsed, 11 bytes received) < Content: { "data": {} }
-
-
Creates a new or gets the previously created link for a file or folder that can be used to access the item in a browser by anyone. This request is only available for items marked as
shareable
.Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string Body:
Description:A JSON object describing the target file- or directory version to get the link for.
Content-type: application/json-
DriveShareTargetData
{- name ( string ): The name of the file, including its extension, e.g. "test.doc". Not set if the target is a directory.
- path ( string ): The path of the (file's parent) directory, relative to the root folder.
- checksum ( string ): The MD5 hash of the file or directory, expressed as a lowercase hexadecimal number string, 32 characters long, e.g. "f8cacac95379527cd4fa15f0cb782a09".
Responses:
200:
A JSON object containing details about the share link, including its URL. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveShareLinkResponse
{- data ( DriveShareLinkData ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveShareLinkData
{- checksum ( string ): The current checksum of the share target (available since v7.8.1).
- url ( string ): The link to share (read-only).
- entity ( integer ): The identifier of the anonymous user entity for the share (read-only).
- is_new ( boolean ): Whether the share link is new, i.e. it has been created by the `/share/management?action=getLink` request, or if it already existed (read-only).
- expiry_date ( integer ): The end date / expiration time after which the share link is no longer accessible (always UTC, not translated into user time).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share.
- includeSubfolders ( boolean ): An optional flag indicating if subfolders are included or not. Only applicable for shared infostore folders.
- meta ( meta ): Can be used by the client to save arbitrary JSON data along with the share.
Examples:
Example1: Get the intial link for a file==> PUT http://192.168.32.191/ajax/drive?action=getLink&session=35d55f0bd2284e78a8eb4dba99b1310b&root=9542 > Content: { "path": "/", "name": "photo.jpg", "checksum": "bdf3bf1da3405725be763540d6601144" } <== HTTP 200 OK (311.8978 ms elapsed, 118 bytes received) < Content: { "data": { "url": "http://127.0.0.1/ajax/share/17bc4ac00d424e85ef5272dd427342438e7f20b415aba46c/4df04226", "is_new": true, "checksum": "bdf3bf1da3405725be763540d6601144" } }
Example2: Get an already existing link for a file==> PUT http://192.168.32.191/ajax/drive?action=getLink&session=35d55f0bd2284e78a8eb4dba99b1310b&root=9542 > Content: { "path": "/", "name": "photo.jpg", "checksum": "bdf3bf1da3405725be763540d6601144" } <== HTTP 200 OK (78.0547 ms elapsed, 167 bytes received) < Content: { "data": { "url": "http://127.0.0.1/ajax/share/17bc4ac00d424e85ef5272dd427342438e7f20b415aba46c/4df04226", "is_new": false, "expiry_date": 1451606400000, "password": "secret", "checksum": "bdf3bf1da3405725be763540d6601144" } }
-
-
Generates a direct link into the AppSuite UI for a synchronized file or a synchronized folder and a token for token-based login. The acquired link can then be used by appending the used client token as parameter in a different client, e.g. a web browser.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string path (empty) The path to the synchronized folder, relative to the root folder, starting with `/`.
query string authId (empty) Identifier for tracing every single login request passed between different systems in a cluster. The value should be some token that is unique for every jump request.
query string name (empty) The name of the file in the synchronized folder given in `path` parameter.
query string method The method of the jump. Available are: edit (opens the file in AppSuite editor or in text/spreadsheet if available), permissions (opens the file's/folder's change-permission dialog), version_history (opens the file's version history summary), preview (opens the file's/folder's preview). Defaults to preview.
query string Body:
Description:No description available
Content-type: application/x-www-form-urlencoded-
driveJumpBody
{- clientToken ( string ): Client side identifier for accessing the session later. The value should be some token that is unique for every jump request.
Responses:
200:
A JSON object containing the direct link to the file/folder including a server token for token based login. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveJumpResponse
{- data ( DriveJumpData ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveJumpData
{- redirectUrl ( string ): The direct link to the file/folder.
- appendClientToken ( boolean ): `true` if the client token needs to be appended, `false`, otherwise.
Examples:
Example1: Basic example==> POST http://localhost/ajax/drive?action=jump&session=48a289898ad949faaa46c04e7fb422f5&root=9547&path=/path/to/file&name=file_to_edit.txt&method=edit&authId=41763584-8460-11e4-b116-123b93f75dba > Content: clientToken=47d74b1c-81df-11e4-b116-123b93f75cba <== HTTP 200 OK < Content: { "data": { "redirectUrl": "http://localhost/appsuite#app=io.ox/editor&folder=273264&id=273264/307438&serverToken=7b90972628e34e89bb9a3946d1372c68" } }
-
-
Retrieves the files and folders of the root level of the users trash folder.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string Responses:
200:
A JSON object holding the files and folders of the trash folder. If no trash folder is available, an empty response is returned.
Content-type: application/json-
TrashFolderResponse
{- data ( TrashContent ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
TrashContent
{- files ( array[DriveFileMetadata] ): An array of files.
- directories ( array[DriveDirectoryMetadata] ): An array of folders.
-
DriveFileMetadata
{- name ( string ): The name of the file the metadata belongs to.
- checksum ( string ): The file's checksum. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- path ( string ): The path of the parent directory. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- content_type ( string ): The content type of the file.
- preview ( string ): A URL to a preview image for the file.
- thumbnail ( string ): A URL to a thumbnail image for the file.
- object_permissions ( array[DriveObjectPermission] ): An array of all file permissions.
- extended_object_permissions ( array[DriveObjectExtendedPermission] ): An array of all file permissions including some additional information.
- shared ( boolean ): `true` if the file is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the file can be shared to others by the user, `false` or not set, otherwise.
- locked ( boolean ): `true` if the file is locked, `false` or not set, otherwise.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the file, like "preview", etc.
- number_of_versions ( integer ): The number of all versions of the file.
- version ( string ): The current version identifier (usally, but not necessarily a numerical value) of the file.
- version_comment ( string ): An additional comment for the file version.
- versions ( array[DriveFileVersionMetadata] ): Metadata for all versions of the file.
-
DriveObjectPermission
{-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies.
- group ( boolean ): Is `true` if entity refers to a group, `false` if it refers to a user.
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
-
bits
(
integer
, possibleValues:
-
DriveObjectExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - type ( string ): "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( ContactData ): No description available
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
-
ContactData Composed Schema
ALLOF: Object Object -
Unknown
{- id ( string ): Object ID.
- created_by ( integer , read only ): User ID of the user who created this object.
- modified_by ( integer , read only ): User ID of the user who last modified this object.
- creation_date ( integer , read only ): Date and time of creation.
- last_modified ( integer , read only ): Date and time of the last modification.
- folder_id ( string ): Object ID of the parent folder.
- categories ( string ): String containing comma separated the categories. Order is preserved. Changing the order counts as modification of the object. Not present in folder objects.
- private_flag ( boolean ): Overrides folder permissions in shared private folders: When `true`, this object is not visible to anyone except the owner. Not present in folder objects.
- color_label ( integer ): Color number used by Outlook to label the object. The assignment of colors to numbers is arbitrary and specified by the client. The numbers are integer numbers between 0 and 10 (inclusive). Not present in folder objects.
- number_of_attachments ( integer ): Number of attachments.
- lastModifiedOfNewestAttachmentUTC ( integer ): Timestamp of the newest attachment written with UTC time zone.
-
DistributionListMember
{- id ( string ): Object ID of the member's contact if the member is an existing contact.
- folder_id ( string ): Parent folder ID of the member's contact if the member is an existing contact.
- display_name ( string ): The display name.
- sort_name ( string ): A name which can be used for sorting.
- mail ( string ): The email address (optional if you are referring to an internal contact).
-
mail_field
(
integer
, possibleValues:
0
1
2
3
* 0 (independent contact),
* 1 (default email field, email1),
* 2 (second email field, email2),
* 3 (third email field, email3)
-
DriveFileVersionMetadata
{- name ( string ): The name of the file version.
- file_size ( integer ): The file size of the version in bytes.
- created ( integer ): The file version's creation time (always UTC, not translated into user time).
- modified ( integer ): The file version's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- version ( string ): The version identifier (usually, but not necessarily a numerical value) of the file version.
- version_comment ( string ): An additional comment for the file version.
-
DriveDirectoryMetadata
{- id ( string ): The server-side unique identifier of the directory.
- localized_name ( string ): The localized display name of the directory.
- checksum ( string ): The directory's checksum. Only set if metadata is not retrieved through Metadata synchronization.
- own_rights ( integer ): Folder permissions which apply to the current user, as described in OX HTTP API, Flags / bit masks.
- permissions ( array[DriveFolderPermission] ): An array of all folder permissions.
- extended_permissions ( array[DriveFolderExtendedPermission] ): An array of all folder permissions including some additional information.
- default_folder ( boolean ): `true` if the folder is a default folder, `false` or not set, otherwise.
- has_subfolders ( boolean ): `true` if the folder (potentially) has subfolders, `false` or not set, otherwise.
- shared ( boolean ): `true` if the folder is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the folder can be shared to others by the user, `false` or not set, otherwise.
- not_synchronizable ( boolean ): `true` if the folder is excluded from synchronization, `false` or not set, otherwise.
- type ( integer ): The specifal folder type, or not set, if not available.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the folder, like "permissions", etc.
- files ( array[DriveFileMetadata] ): Metadata for the contained files. Only set if metadata is retrieved through Metadata synchronization.
- name ( string ): The name of the folder.
- path ( string ): The path of the folder.
-
DriveFolderPermission
{- bits ( integer ): For non-mail folders, a number as described in Permission flags.
- rights ( string ): For mail folders, the rights string as defined in RFC 2086.
- identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies (ignored for type "anonymous" or "guest").
- group ( boolean ): Set `true` if entity refers to a group, `false` if it refers to a user (ignored for type "anonymous" or "guest").
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
- includeSubfolders ( boolean ): If this permission is applied to subfolders (for type "anonymous", optional).
-
DriveFolderExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
- bits ( integer ): A number as described in Permission flags.
- type ( string ): Set "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( contact ): A (reduced) set of Detailed contact data for "user" and "guest" entities.
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
- includeSubfolders ( boolean ): The optionally set "include subfolders" option for "anonymous" entities.
- isInherited ( boolean ): A flag indicating whether the permissions is inherited from the parent folder or not. The client must not allow the user to delete or update inherited permissions.
- isInheritedFrom ( integer ): If this permission is handed down from a parent folder (isInherited is set to `true`) this field contains the id of the sharing folder.
-
-
Updates a device's registration token in case a new one was assigned by the service.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string service (empty) The name of the underlying push service to use, currently one of gcm, apn, or apn.macos.
query string token (empty) The previous registration token as assigned by the service.
query string newToken (empty) The new registration token as assigned by the service.
query string Responses:
200:
An empty JSON result. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
CommonResponse
{- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
Examples:
Example1: Basic example==> GET http://192.168.32.191/ajax/drive?action=updateToken&service=apn&session=51378e29f82042b4afe4af1c034c6d68&token=28919862989a1b5ba59c11d5f7cb7ba2b9678be9dd18b033184d04f682013677&newToken=38919862989a1b5ba59c11d5f7cb7ba2b9678be9dd18b033184d04f682013677 <== HTTP 200 OK (15.6653 ms elapsed, 11 bytes received) < Content: { "data" : { } }
-
-
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string path (empty) The path to the synchronized folder, relative to the root folder, starting with `/`.
query string name (empty) The name of the file version.
query string checksum (empty) The checksum of the file version.
query string Responses:
200:
A JSON object containing the metadata of the requested file version. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveFileResponse
{- data ( DriveFileMetadata ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveFileMetadata
{- name ( string ): The name of the file the metadata belongs to.
- checksum ( string ): The file's checksum. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- path ( string ): The path of the parent directory. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- content_type ( string ): The content type of the file.
- preview ( string ): A URL to a preview image for the file.
- thumbnail ( string ): A URL to a thumbnail image for the file.
- object_permissions ( array[DriveObjectPermission] ): An array of all file permissions.
- extended_object_permissions ( array[DriveObjectExtendedPermission] ): An array of all file permissions including some additional information.
- shared ( boolean ): `true` if the file is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the file can be shared to others by the user, `false` or not set, otherwise.
- locked ( boolean ): `true` if the file is locked, `false` or not set, otherwise.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the file, like "preview", etc.
- number_of_versions ( integer ): The number of all versions of the file.
- version ( string ): The current version identifier (usally, but not necessarily a numerical value) of the file.
- version_comment ( string ): An additional comment for the file version.
- versions ( array[DriveFileVersionMetadata] ): Metadata for all versions of the file.
-
DriveObjectPermission
{-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies.
- group ( boolean ): Is `true` if entity refers to a group, `false` if it refers to a user.
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
-
bits
(
integer
, possibleValues:
-
DriveObjectExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - type ( string ): "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( ContactData ): No description available
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
-
ContactData Composed Schema
ALLOF: Object Object -
Unknown
{- id ( string ): Object ID.
- created_by ( integer , read only ): User ID of the user who created this object.
- modified_by ( integer , read only ): User ID of the user who last modified this object.
- creation_date ( integer , read only ): Date and time of creation.
- last_modified ( integer , read only ): Date and time of the last modification.
- folder_id ( string ): Object ID of the parent folder.
- categories ( string ): String containing comma separated the categories. Order is preserved. Changing the order counts as modification of the object. Not present in folder objects.
- private_flag ( boolean ): Overrides folder permissions in shared private folders: When `true`, this object is not visible to anyone except the owner. Not present in folder objects.
- color_label ( integer ): Color number used by Outlook to label the object. The assignment of colors to numbers is arbitrary and specified by the client. The numbers are integer numbers between 0 and 10 (inclusive). Not present in folder objects.
- number_of_attachments ( integer ): Number of attachments.
- lastModifiedOfNewestAttachmentUTC ( integer ): Timestamp of the newest attachment written with UTC time zone.
-
DistributionListMember
{- id ( string ): Object ID of the member's contact if the member is an existing contact.
- folder_id ( string ): Parent folder ID of the member's contact if the member is an existing contact.
- display_name ( string ): The display name.
- sort_name ( string ): A name which can be used for sorting.
- mail ( string ): The email address (optional if you are referring to an internal contact).
-
mail_field
(
integer
, possibleValues:
0
1
2
3
* 0 (independent contact),
* 1 (default email field, email1),
* 2 (second email field, email2),
* 3 (third email field, email3)
-
DriveFileVersionMetadata
{- name ( string ): The name of the file version.
- file_size ( integer ): The file size of the version in bytes.
- created ( integer ): The file version's creation time (always UTC, not translated into user time).
- modified ( integer ): The file version's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- version ( string ): The version identifier (usually, but not necessarily a numerical value) of the file version.
- version_comment ( string ): An additional comment for the file version.
-
-
Sends a notification message for a share link to one or more recipients.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string Body:
Description:A JSON object describing the target file- or directory version to send the link for. The recipients are listed in field `recipients` and an optionally custom notification message may be specified in a `message` field.
Content-type: application/json-
DriveShareLinkNotificationBody
{- recipients ( array[array[string]] ): An array containing two-element JSON arrays specifying the recipients. The first element of a nested array is the personal name, the second element is the email address. Missing address parts are represented by `null` values. Example: `[["Otto Example", "otto@example.com"],["Horst Example", "horst@example.com"]`.
- transport ( string ): Can contain the transport mechanism to use, defaults to "mail".
- message ( string ): A custom notification message, if not set some default message is used.
- name ( string ): The name of the file, including its extension, e.g. "test.doc". Not set if the target is a directory.
- path ( string ): The path of the (file's parent) directory, relative to the root folder.
- checksum ( string ): The MD5 hash of the file or directory, expressed as a lowercase hexadecimal number string, 32 characters long, e.g. "f8cacac95379527cd4fa15f0cb782a09".
Responses:
200:
An empty JSON object. Any transport warnings that occurred during sending the notifications are available in the `warnings` field. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveNotificationResponse
{- warnings ( array[object] ): Can contain any transport warnings that occurred during sending the notifications.
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
Examples:
Example1: Basic example==> PUT http://192.168.32.191/ajax/drive?action=sendLink&session=35d55f0bd2284e78a8eb4dba99b1310b&root=9542 > Content: { "path": "/", "name": "photo.jpg", "checksum": "bdf3bf1da3405725be763540d6601144", "recipients": [ ["Otto Example", "otto@example.com"], ["Horst Example", "horst@example.org"] ] } <== HTTP 200 OK (260.9242 ms elapsed, 11 bytes received) < Content: { "data": {} }
-
-
Additional metadata of synchronized directories is made available.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string path (empty) The path to the synchronized folder, relative to the root folder, starting with `/`.
query string Responses:
200:
A JSON object containing the fields `path`, `checksum`, `directLink`, and `directLinkFragments`. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveDirectoryMetadataResponse
{- data ( DriveOldDirectoryMetadata ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveOldDirectoryMetadata
{- path ( string ): The path of the directory, relative to the root folder.
- checksum ( string ): The checksum of the directory.
- directLink ( string ): An URL with a direct link to the folder.
- directLinkFragments ( string ): The fragments part of the direct link that can be used in combination with the token login method to jump directly to the detail view in the web interface, bypassing the need to login manually.
-
-
Updates specific metadata of a synchronized directory. This currently only includes the permissions - which in turn is only allowed for directories marked as
shareable
.Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string path (empty) The path to the synchronized folder, relative to the root folder, starting with `/`.
query string checksum (empty) The checksum of the directory to update.
query string Body:
Description:A JSON object containing the fields `folder` and `notification`. The JSON object in field `folder` describes the updated directory metadata (currently only the property `permissions` is considered) and the JSON object `notification` may include a message to notify added permission entities. To notify with a default message, an empty `notification` object should still be added.
Content-type: application/json-
DriveFolderUpdateBody
{- folder ( DriveDirectoryMetadata ): No description available
- notification ( DriveNotificationData ): No description available
-
DriveDirectoryMetadata
{- id ( string ): The server-side unique identifier of the directory.
- localized_name ( string ): The localized display name of the directory.
- checksum ( string ): The directory's checksum. Only set if metadata is not retrieved through Metadata synchronization.
- own_rights ( integer ): Folder permissions which apply to the current user, as described in OX HTTP API, Flags / bit masks.
- permissions ( array[DriveFolderPermission] ): An array of all folder permissions.
- extended_permissions ( array[DriveFolderExtendedPermission] ): An array of all folder permissions including some additional information.
- default_folder ( boolean ): `true` if the folder is a default folder, `false` or not set, otherwise.
- has_subfolders ( boolean ): `true` if the folder (potentially) has subfolders, `false` or not set, otherwise.
- shared ( boolean ): `true` if the folder is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the folder can be shared to others by the user, `false` or not set, otherwise.
- not_synchronizable ( boolean ): `true` if the folder is excluded from synchronization, `false` or not set, otherwise.
- type ( integer ): The specifal folder type, or not set, if not available.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the folder, like "permissions", etc.
- files ( array[DriveFileMetadata] ): Metadata for the contained files. Only set if metadata is retrieved through Metadata synchronization.
- name ( string ): The name of the folder.
- path ( string ): The path of the folder.
-
DriveFolderPermission
{- bits ( integer ): For non-mail folders, a number as described in Permission flags.
- rights ( string ): For mail folders, the rights string as defined in RFC 2086.
- identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies (ignored for type "anonymous" or "guest").
- group ( boolean ): Set `true` if entity refers to a group, `false` if it refers to a user (ignored for type "anonymous" or "guest").
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
- includeSubfolders ( boolean ): If this permission is applied to subfolders (for type "anonymous", optional).
-
DriveFolderExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
- bits ( integer ): A number as described in Permission flags.
- type ( string ): Set "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( contact ): A (reduced) set of Detailed contact data for "user" and "guest" entities.
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
- includeSubfolders ( boolean ): The optionally set "include subfolders" option for "anonymous" entities.
- isInherited ( boolean ): A flag indicating whether the permissions is inherited from the parent folder or not. The client must not allow the user to delete or update inherited permissions.
- isInheritedFrom ( integer ): If this permission is handed down from a parent folder (isInherited is set to `true`) this field contains the id of the sharing folder.
-
DriveFileMetadata
{- name ( string ): The name of the file the metadata belongs to.
- checksum ( string ): The file's checksum. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- path ( string ): The path of the parent directory. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- content_type ( string ): The content type of the file.
- preview ( string ): A URL to a preview image for the file.
- thumbnail ( string ): A URL to a thumbnail image for the file.
- object_permissions ( array[DriveObjectPermission] ): An array of all file permissions.
- extended_object_permissions ( array[DriveObjectExtendedPermission] ): An array of all file permissions including some additional information.
- shared ( boolean ): `true` if the file is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the file can be shared to others by the user, `false` or not set, otherwise.
- locked ( boolean ): `true` if the file is locked, `false` or not set, otherwise.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the file, like "preview", etc.
- number_of_versions ( integer ): The number of all versions of the file.
- version ( string ): The current version identifier (usally, but not necessarily a numerical value) of the file.
- version_comment ( string ): An additional comment for the file version.
- versions ( array[DriveFileVersionMetadata] ): Metadata for all versions of the file.
-
DriveObjectPermission
{-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies.
- group ( boolean ): Is `true` if entity refers to a group, `false` if it refers to a user.
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
-
bits
(
integer
, possibleValues:
-
DriveObjectExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - type ( string ): "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( ContactData ): No description available
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
-
ContactData Composed Schema
ALLOF: Object Object -
Unknown
{- id ( string ): Object ID.
- created_by ( integer , read only ): User ID of the user who created this object.
- modified_by ( integer , read only ): User ID of the user who last modified this object.
- creation_date ( integer , read only ): Date and time of creation.
- last_modified ( integer , read only ): Date and time of the last modification.
- folder_id ( string ): Object ID of the parent folder.
- categories ( string ): String containing comma separated the categories. Order is preserved. Changing the order counts as modification of the object. Not present in folder objects.
- private_flag ( boolean ): Overrides folder permissions in shared private folders: When `true`, this object is not visible to anyone except the owner. Not present in folder objects.
- color_label ( integer ): Color number used by Outlook to label the object. The assignment of colors to numbers is arbitrary and specified by the client. The numbers are integer numbers between 0 and 10 (inclusive). Not present in folder objects.
- number_of_attachments ( integer ): Number of attachments.
- lastModifiedOfNewestAttachmentUTC ( integer ): Timestamp of the newest attachment written with UTC time zone.
-
DistributionListMember
{- id ( string ): Object ID of the member's contact if the member is an existing contact.
- folder_id ( string ): Parent folder ID of the member's contact if the member is an existing contact.
- display_name ( string ): The display name.
- sort_name ( string ): A name which can be used for sorting.
- mail ( string ): The email address (optional if you are referring to an internal contact).
-
mail_field
(
integer
, possibleValues:
0
1
2
3
* 0 (independent contact),
* 1 (default email field, email1),
* 2 (second email field, email2),
* 3 (third email field, email3)
-
DriveFileVersionMetadata
{- name ( string ): The name of the file version.
- file_size ( integer ): The file size of the version in bytes.
- created ( integer ): The file version's creation time (always UTC, not translated into user time).
- modified ( integer ): The file version's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- version ( string ): The version identifier (usually, but not necessarily a numerical value) of the file version.
- version_comment ( string ): An additional comment for the file version.
-
DriveNotificationData
{- transport ( string ): Can contain the transport mechanism to use, defaults to "mail".
- message ( string ): A notification message.
Responses:
200:
A JSON object containing the metadata of the requested directory. In case of errors the responsible fields in the response are filled. Problems that occurrend during notification are included as warnings.
Content-type: application/json-
DriveFolderResponse
{- data ( DriveDirectoryMetadata ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveDirectoryMetadata
{- id ( string ): The server-side unique identifier of the directory.
- localized_name ( string ): The localized display name of the directory.
- checksum ( string ): The directory's checksum. Only set if metadata is not retrieved through Metadata synchronization.
- own_rights ( integer ): Folder permissions which apply to the current user, as described in OX HTTP API, Flags / bit masks.
- permissions ( array[DriveFolderPermission] ): An array of all folder permissions.
- extended_permissions ( array[DriveFolderExtendedPermission] ): An array of all folder permissions including some additional information.
- default_folder ( boolean ): `true` if the folder is a default folder, `false` or not set, otherwise.
- has_subfolders ( boolean ): `true` if the folder (potentially) has subfolders, `false` or not set, otherwise.
- shared ( boolean ): `true` if the folder is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the folder can be shared to others by the user, `false` or not set, otherwise.
- not_synchronizable ( boolean ): `true` if the folder is excluded from synchronization, `false` or not set, otherwise.
- type ( integer ): The specifal folder type, or not set, if not available.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the folder, like "permissions", etc.
- files ( array[DriveFileMetadata] ): Metadata for the contained files. Only set if metadata is retrieved through Metadata synchronization.
- name ( string ): The name of the folder.
- path ( string ): The path of the folder.
-
DriveFolderPermission
{- bits ( integer ): For non-mail folders, a number as described in Permission flags.
- rights ( string ): For mail folders, the rights string as defined in RFC 2086.
- identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies (ignored for type "anonymous" or "guest").
- group ( boolean ): Set `true` if entity refers to a group, `false` if it refers to a user (ignored for type "anonymous" or "guest").
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
- includeSubfolders ( boolean ): If this permission is applied to subfolders (for type "anonymous", optional).
-
DriveFolderExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
- bits ( integer ): A number as described in Permission flags.
- type ( string ): Set "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( contact ): A (reduced) set of Detailed contact data for "user" and "guest" entities.
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
- includeSubfolders ( boolean ): The optionally set "include subfolders" option for "anonymous" entities.
- isInherited ( boolean ): A flag indicating whether the permissions is inherited from the parent folder or not. The client must not allow the user to delete or update inherited permissions.
- isInheritedFrom ( integer ): If this permission is handed down from a parent folder (isInherited is set to `true`) this field contains the id of the sharing folder.
-
DriveFileMetadata
{- name ( string ): The name of the file the metadata belongs to.
- checksum ( string ): The file's checksum. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- path ( string ): The path of the parent directory. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- content_type ( string ): The content type of the file.
- preview ( string ): A URL to a preview image for the file.
- thumbnail ( string ): A URL to a thumbnail image for the file.
- object_permissions ( array[DriveObjectPermission] ): An array of all file permissions.
- extended_object_permissions ( array[DriveObjectExtendedPermission] ): An array of all file permissions including some additional information.
- shared ( boolean ): `true` if the file is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the file can be shared to others by the user, `false` or not set, otherwise.
- locked ( boolean ): `true` if the file is locked, `false` or not set, otherwise.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the file, like "preview", etc.
- number_of_versions ( integer ): The number of all versions of the file.
- version ( string ): The current version identifier (usally, but not necessarily a numerical value) of the file.
- version_comment ( string ): An additional comment for the file version.
- versions ( array[DriveFileVersionMetadata] ): Metadata for all versions of the file.
-
DriveObjectPermission
{-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies.
- group ( boolean ): Is `true` if entity refers to a group, `false` if it refers to a user.
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
-
bits
(
integer
, possibleValues:
-
DriveObjectExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - type ( string ): "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( ContactData ): No description available
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
-
ContactData Composed Schema
ALLOF: Object Object -
Unknown
{- id ( string ): Object ID.
- created_by ( integer , read only ): User ID of the user who created this object.
- modified_by ( integer , read only ): User ID of the user who last modified this object.
- creation_date ( integer , read only ): Date and time of creation.
- last_modified ( integer , read only ): Date and time of the last modification.
- folder_id ( string ): Object ID of the parent folder.
- categories ( string ): String containing comma separated the categories. Order is preserved. Changing the order counts as modification of the object. Not present in folder objects.
- private_flag ( boolean ): Overrides folder permissions in shared private folders: When `true`, this object is not visible to anyone except the owner. Not present in folder objects.
- color_label ( integer ): Color number used by Outlook to label the object. The assignment of colors to numbers is arbitrary and specified by the client. The numbers are integer numbers between 0 and 10 (inclusive). Not present in folder objects.
- number_of_attachments ( integer ): Number of attachments.
- lastModifiedOfNewestAttachmentUTC ( integer ): Timestamp of the newest attachment written with UTC time zone.
-
DistributionListMember
{- id ( string ): Object ID of the member's contact if the member is an existing contact.
- folder_id ( string ): Parent folder ID of the member's contact if the member is an existing contact.
- display_name ( string ): The display name.
- sort_name ( string ): A name which can be used for sorting.
- mail ( string ): The email address (optional if you are referring to an internal contact).
-
mail_field
(
integer
, possibleValues:
0
1
2
3
* 0 (independent contact),
* 1 (default email field, email1),
* 2 (second email field, email2),
* 3 (third email field, email3)
-
DriveFileVersionMetadata
{- name ( string ): The name of the file version.
- file_size ( integer ): The file size of the version in bytes.
- created ( integer ): The file version's creation time (always UTC, not translated into user time).
- modified ( integer ): The file version's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- version ( string ): The version identifier (usually, but not necessarily a numerical value) of the file version.
- version_comment ( string ): An additional comment for the file version.
Examples:
Example1: Basic example==> PUT http://192.168.32.191/ajax/drive?action=updateFolder&session=35d55f0bd2284e78a8eb4dba99b1310b&root=9542&path=/Testfolder&checksum=d41d8cd98f00b204e9800998ecf8427e > Content: { "folder": { "permissions": [{ "group": false, "bits": 403710016, "entity": 14 }, { "type": "guest", "email_address": "otto@example.com", "display_name": "Otto Example", "bits": 135274497 }] }, "notification": { "message": "Look!" } } <== HTTP 200 OK (207.1722 ms elapsed, 769 bytes received) < Content: { "data": { "id": "133", "own_rights": 403710016, "permissions": [ { "bits": 403710016, "entity": 14, "group": false }, { "bits": 135274497, "entity": 15, "group": false } ], "extended_permissions": [ { "entity": 14, "bits": 403710016, "type": "user", "display_name": "Mander, Jens", "contact": { "email1": "jens.mander@example.com", "last_name": "Mander", "first_name": "Jens", "image1_url": "/ajax/contacts/picture?action=get&user_id=14×tamp=1618826793524" } }, { "entity": 15, "bits": 135274497, "type": "guest", "contact": { "email1": "otto@example.com", "image1_url": "/ajax/contacts/picture?action=get&user_id=15×tamp=1620303119498" } } ], "jump": [ "permissions" ], "shared": true, "shareable": true, "checksum": "d41d8cd98f00b204e9800998ecf8427e", "path": "/Testfolder", "name": "Testfolder", "created": 1628673781937, "modified": 1628673788607, "created_by": 14, "modified_by": 14 } }
-
-
Empties the trash folder, i.e. permanently removes any contained files and folders. If a trash folder is available or not can be checked via hasTrashFolder received in the Settings request.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string Responses:
200:
A JSON object holding the updated folder statistics after the trash was emptied. If no trash folder is available, an empty response is returned.
Content-type: application/json-
Unknown
{- totalSize ( integer , required ): The total size of the contents in bytes.
- numFiles ( integer , required ): The total number of contained files.
- numFolders ( integer , required ): The total number of contained folders.
Examples:
Example1: Basic example==> GET http://192.168.32.191/ajax/drive?action=emptyTrash&session=35d55f0bd2284e78a8eb4dba99b1310b&root=9542 <== HTTP 200 OK (184.0234 ms elapsed, 52 bytes received) < Content: { "data": { "totalSize": 0, "numFiles": 0, "numFolders": 0 } }
-
-
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string path (empty) The path to the synchronized folder, relative to the root folder, starting with `/`.
query string checksum (empty) The checksum of the directory.
query string Responses:
200:
A JSON object containing the metadata of the requested directory. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveFolderResponse
{- data ( DriveDirectoryMetadata ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveDirectoryMetadata
{- id ( string ): The server-side unique identifier of the directory.
- localized_name ( string ): The localized display name of the directory.
- checksum ( string ): The directory's checksum. Only set if metadata is not retrieved through Metadata synchronization.
- own_rights ( integer ): Folder permissions which apply to the current user, as described in OX HTTP API, Flags / bit masks.
- permissions ( array[DriveFolderPermission] ): An array of all folder permissions.
- extended_permissions ( array[DriveFolderExtendedPermission] ): An array of all folder permissions including some additional information.
- default_folder ( boolean ): `true` if the folder is a default folder, `false` or not set, otherwise.
- has_subfolders ( boolean ): `true` if the folder (potentially) has subfolders, `false` or not set, otherwise.
- shared ( boolean ): `true` if the folder is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the folder can be shared to others by the user, `false` or not set, otherwise.
- not_synchronizable ( boolean ): `true` if the folder is excluded from synchronization, `false` or not set, otherwise.
- type ( integer ): The specifal folder type, or not set, if not available.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the folder, like "permissions", etc.
- files ( array[DriveFileMetadata] ): Metadata for the contained files. Only set if metadata is retrieved through Metadata synchronization.
- name ( string ): The name of the folder.
- path ( string ): The path of the folder.
-
DriveFolderPermission
{- bits ( integer ): For non-mail folders, a number as described in Permission flags.
- rights ( string ): For mail folders, the rights string as defined in RFC 2086.
- identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies (ignored for type "anonymous" or "guest").
- group ( boolean ): Set `true` if entity refers to a group, `false` if it refers to a user (ignored for type "anonymous" or "guest").
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
- includeSubfolders ( boolean ): If this permission is applied to subfolders (for type "anonymous", optional).
-
DriveFolderExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
- bits ( integer ): A number as described in Permission flags.
- type ( string ): Set "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( contact ): A (reduced) set of Detailed contact data for "user" and "guest" entities.
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
- includeSubfolders ( boolean ): The optionally set "include subfolders" option for "anonymous" entities.
- isInherited ( boolean ): A flag indicating whether the permissions is inherited from the parent folder or not. The client must not allow the user to delete or update inherited permissions.
- isInheritedFrom ( integer ): If this permission is handed down from a parent folder (isInherited is set to `true`) this field contains the id of the sharing folder.
-
DriveFileMetadata
{- name ( string ): The name of the file the metadata belongs to.
- checksum ( string ): The file's checksum. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- path ( string ): The path of the parent directory. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- content_type ( string ): The content type of the file.
- preview ( string ): A URL to a preview image for the file.
- thumbnail ( string ): A URL to a thumbnail image for the file.
- object_permissions ( array[DriveObjectPermission] ): An array of all file permissions.
- extended_object_permissions ( array[DriveObjectExtendedPermission] ): An array of all file permissions including some additional information.
- shared ( boolean ): `true` if the file is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the file can be shared to others by the user, `false` or not set, otherwise.
- locked ( boolean ): `true` if the file is locked, `false` or not set, otherwise.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the file, like "preview", etc.
- number_of_versions ( integer ): The number of all versions of the file.
- version ( string ): The current version identifier (usally, but not necessarily a numerical value) of the file.
- version_comment ( string ): An additional comment for the file version.
- versions ( array[DriveFileVersionMetadata] ): Metadata for all versions of the file.
-
DriveObjectPermission
{-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies.
- group ( boolean ): Is `true` if entity refers to a group, `false` if it refers to a user.
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
-
bits
(
integer
, possibleValues:
-
DriveObjectExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - type ( string ): "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( ContactData ): No description available
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
-
ContactData Composed Schema
ALLOF: Object Object -
Unknown
{- id ( string ): Object ID.
- created_by ( integer , read only ): User ID of the user who created this object.
- modified_by ( integer , read only ): User ID of the user who last modified this object.
- creation_date ( integer , read only ): Date and time of creation.
- last_modified ( integer , read only ): Date and time of the last modification.
- folder_id ( string ): Object ID of the parent folder.
- categories ( string ): String containing comma separated the categories. Order is preserved. Changing the order counts as modification of the object. Not present in folder objects.
- private_flag ( boolean ): Overrides folder permissions in shared private folders: When `true`, this object is not visible to anyone except the owner. Not present in folder objects.
- color_label ( integer ): Color number used by Outlook to label the object. The assignment of colors to numbers is arbitrary and specified by the client. The numbers are integer numbers between 0 and 10 (inclusive). Not present in folder objects.
- number_of_attachments ( integer ): Number of attachments.
- lastModifiedOfNewestAttachmentUTC ( integer ): Timestamp of the newest attachment written with UTC time zone.
-
DistributionListMember
{- id ( string ): Object ID of the member's contact if the member is an existing contact.
- folder_id ( string ): Parent folder ID of the member's contact if the member is an existing contact.
- display_name ( string ): The display name.
- sort_name ( string ): A name which can be used for sorting.
- mail ( string ): The email address (optional if you are referring to an internal contact).
-
mail_field
(
integer
, possibleValues:
0
1
2
3
* 0 (independent contact),
* 1 (default email field, email1),
* 2 (second email field, email2),
* 3 (third email field, email3)
-
DriveFileVersionMetadata
{- name ( string ): The name of the file version.
- file_size ( integer ): The file size of the version in bytes.
- created ( integer ): The file version's creation time (always UTC, not translated into user time).
- modified ( integer ): The file version's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- version ( string ): The version identifier (usually, but not necessarily a numerical value) of the file version.
- version_comment ( string ): An additional comment for the file version.
-
-
Restores the given files and folders from trash. The files and folders are moved back to its original location if possible.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string Body:
Description:A JSON object describing the target files- and directories to restore.
Content-type: application/json-
TrashTargetsBody - The trash targets to restore or delete.
{- files ( array[string] ): An array of file names.
- directories ( array[string] ): An array of folder names.
Responses:
200:
Returns the files and folders and their new paths.
Content-type: application/json-
TrashFolderResponse
{- data ( TrashContent ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
TrashContent
{- files ( array[DriveFileMetadata] ): An array of files.
- directories ( array[DriveDirectoryMetadata] ): An array of folders.
-
DriveFileMetadata
{- name ( string ): The name of the file the metadata belongs to.
- checksum ( string ): The file's checksum. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- path ( string ): The path of the parent directory. Only set if metadata is not retrieved through Metadata synchronization or via getTrashContent action.
- created ( integer ): The file's creation time (always UTC, not translated into user time).
- modified ( integer ): The file's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- content_type ( string ): The content type of the file.
- preview ( string ): A URL to a preview image for the file.
- thumbnail ( string ): A URL to a thumbnail image for the file.
- object_permissions ( array[DriveObjectPermission] ): An array of all file permissions.
- extended_object_permissions ( array[DriveObjectExtendedPermission] ): An array of all file permissions including some additional information.
- shared ( boolean ): `true` if the file is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the file can be shared to others by the user, `false` or not set, otherwise.
- locked ( boolean ): `true` if the file is locked, `false` or not set, otherwise.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the file, like "preview", etc.
- number_of_versions ( integer ): The number of all versions of the file.
- version ( string ): The current version identifier (usally, but not necessarily a numerical value) of the file.
- version_comment ( string ): An additional comment for the file version.
- versions ( array[DriveFileVersionMetadata] ): Metadata for all versions of the file.
-
DriveObjectPermission
{-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies.
- group ( boolean ): Is `true` if entity refers to a group, `false` if it refers to a user.
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
-
bits
(
integer
, possibleValues:
-
DriveObjectExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
-
bits
(
integer
, possibleValues:
0
1
2
* 0 (the numerical value indicating no object permissions),
* 1 (the numerical value indicating read object permissions),
* 2 (the numerical value indicating write object permissions. This implicitly includes the “read” permission (this is no bitmask)) - type ( string ): "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( ContactData ): No description available
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
-
ContactData Composed Schema
ALLOF: Object Object -
Unknown
{- id ( string ): Object ID.
- created_by ( integer , read only ): User ID of the user who created this object.
- modified_by ( integer , read only ): User ID of the user who last modified this object.
- creation_date ( integer , read only ): Date and time of creation.
- last_modified ( integer , read only ): Date and time of the last modification.
- folder_id ( string ): Object ID of the parent folder.
- categories ( string ): String containing comma separated the categories. Order is preserved. Changing the order counts as modification of the object. Not present in folder objects.
- private_flag ( boolean ): Overrides folder permissions in shared private folders: When `true`, this object is not visible to anyone except the owner. Not present in folder objects.
- color_label ( integer ): Color number used by Outlook to label the object. The assignment of colors to numbers is arbitrary and specified by the client. The numbers are integer numbers between 0 and 10 (inclusive). Not present in folder objects.
- number_of_attachments ( integer ): Number of attachments.
- lastModifiedOfNewestAttachmentUTC ( integer ): Timestamp of the newest attachment written with UTC time zone.
-
DistributionListMember
{- id ( string ): Object ID of the member's contact if the member is an existing contact.
- folder_id ( string ): Parent folder ID of the member's contact if the member is an existing contact.
- display_name ( string ): The display name.
- sort_name ( string ): A name which can be used for sorting.
- mail ( string ): The email address (optional if you are referring to an internal contact).
-
mail_field
(
integer
, possibleValues:
0
1
2
3
* 0 (independent contact),
* 1 (default email field, email1),
* 2 (second email field, email2),
* 3 (third email field, email3)
-
DriveFileVersionMetadata
{- name ( string ): The name of the file version.
- file_size ( integer ): The file size of the version in bytes.
- created ( integer ): The file version's creation time (always UTC, not translated into user time).
- modified ( integer ): The file version's last modification time (always UTC, not translated into user time).
- created_by ( integer ): The ID of the user who created this object.
- modified_by ( integer ): The ID of the user who last modified this object.
- version ( string ): The version identifier (usually, but not necessarily a numerical value) of the file version.
- version_comment ( string ): An additional comment for the file version.
-
DriveDirectoryMetadata
{- id ( string ): The server-side unique identifier of the directory.
- localized_name ( string ): The localized display name of the directory.
- checksum ( string ): The directory's checksum. Only set if metadata is not retrieved through Metadata synchronization.
- own_rights ( integer ): Folder permissions which apply to the current user, as described in OX HTTP API, Flags / bit masks.
- permissions ( array[DriveFolderPermission] ): An array of all folder permissions.
- extended_permissions ( array[DriveFolderExtendedPermission] ): An array of all folder permissions including some additional information.
- default_folder ( boolean ): `true` if the folder is a default folder, `false` or not set, otherwise.
- has_subfolders ( boolean ): `true` if the folder (potentially) has subfolders, `false` or not set, otherwise.
- shared ( boolean ): `true` if the folder is shared, `false` or not set, otherwise.
- shareable ( boolean ): `true` if the folder can be shared to others by the user, `false` or not set, otherwise.
- not_synchronizable ( boolean ): `true` if the folder is excluded from synchronization, `false` or not set, otherwise.
- type ( integer ): The specifal folder type, or not set, if not available.
- jump ( array[string] ): An array containing the names of possible `jump` methods to use for the folder, like "permissions", etc.
- files ( array[DriveFileMetadata] ): Metadata for the contained files. Only set if metadata is retrieved through Metadata synchronization.
- name ( string ): The name of the folder.
- path ( string ): The path of the folder.
-
DriveFolderPermission
{- bits ( integer ): For non-mail folders, a number as described in Permission flags.
- rights ( string ): For mail folders, the rights string as defined in RFC 2086.
- identifier ( string ): The qualified identifier of the entity associated with this permission.
- entity ( integer ): Internal identifier of the user or group to which this permission applies (ignored for type "anonymous" or "guest").
- group ( boolean ): Set `true` if entity refers to a group, `false` if it refers to a user (ignored for type "anonymous" or "guest").
- type ( string ): The recipient type, i.e. one of "user", "group", "guest", "anonymous" (required if no internal "entity" defined).
- password ( string ): An additional secret / pin number an anonymous user needs to enter when accessing the share (for type "anonymous", optional).
- email_address ( string ): The e-mail address of the recipient (for type "guest").
- display_name ( string ): The display name of the recipient (for type "guest", optional).
- contact_id ( string ): The object identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", optional).
- contact_folder ( string ): The folder identifier of the corresponding contact entry if the recipient was chosen from the address book (for type "guest", required if "contact_id" is set).
- expiry_date ( integer ): The end date / expiration time (always UTC, not translated into user time) after which the share link is no longer accessible (for type "anonymous", optional).
- includeSubfolders ( boolean ): If this permission is applied to subfolders (for type "anonymous", optional).
-
DriveFolderExtendedPermission
{- identifier ( string ): The qualified identifier of the entity associated with this permission. Should be used to associate the entry with its 'extended' permission version equivalent.
- entity ( integer ): Internal identifier of the permission entity (i.e. user-, group- or guest-ID).
- bits ( integer ): A number as described in Permission flags.
- type ( string ): Set "user" for an internal user, "group" for a group, "guest" for a guest, or "anonymous" for an anonymous permission entity.
- display_name ( string ): A display name for the permission entity.
- contact ( contact ): A (reduced) set of Detailed contact data for "user" and "guest" entities.
- share_url ( string ): The share link for "anonymous" entities.
- password ( string ): The optionally set password for "anonymous" entities.
- expiry_date ( integer ): The optionally set expiry date for "anonymous" entities (always UTC, not translated into user time).
- includeSubfolders ( boolean ): The optionally set "include subfolders" option for "anonymous" entities.
- isInherited ( boolean ): A flag indicating whether the permissions is inherited from the parent folder or not. The client must not allow the user to delete or update inherited permissions.
- isInheritedFrom ( integer ): If this permission is handed down from a parent folder (isInherited is set to `true`) this field contains the id of the sharing folder.
-
-
Gets the quota limits and current usage for the storage the supplied root folder belongs to. Depending on the filestore configuration, this may include both restrictions on the number of allowed files and the total size of all contained files in bytes. If there's no limit, -1 is returned.
Parameters:
Parameter Value Description Parameter Type Data Type session (empty) A session ID previously obtained from the login module.
query string root (empty) The ID of the referenced root folder on the server.
query string Responses:
200:
A JSON object containing a field `quota` that is an array of quota objects. The array size may be zero, one or two, depending on the filestore configuration. If one or more quota types are missing in the array, the client can expect that there are no limitations for that type. Besides the array, the JSON object also contains a hyperlink behind the `manageLink` field, poiting to an URL where the user can manage his quota restrictions. In case of errors the responsible fields in the response are filled.
Content-type: application/json-
DriveQuotaResponse
{- data ( DriveQuotaData ): No description available
- error ( string ): The translated error message. Present in case of errors.
- error_params ( array[string] ): As of 7.4.2: Empty JSON array. Before that: Parameters for the error message that would need to be replaced in the error string (in a printf-format style).
- error_id ( string ): Unique error identifier to help finding this error instance in the server logs.
- error_desc ( string ): The technical error message (always English) useful for debugging the problem. Might be the same as error message if there is no more information available.
- error_stack ( array[string] ): If configured (see "com.openexchange.ajax.response.includeStackTraceOnError" in "server.properties") this field provides the stack trace of associated Java exception represented as a JSON array.
- code ( string ): Error code consisting of an upper-case module identifier and a four-digit message number, separated by a dash; e.g. "MSG-0012"
- categories ( string ): Either a single (String) or list (Array) of upper-case category identifiers to which the error belongs.
- category ( integer ): Maintained for legacy reasons: The numeric representation of the first category.
- timestamp ( integer ): The latest timestamp of the returned data.
-
DriveQuotaData
{- quota ( array[DriveQuota] ): An array of quota objects showing the quota limits and usage. A size of zero represents unlimited quota.
- manageLink ( string ): A hyperlink that points to an URL where the user can manage his quota restrictions.
-
DriveQuota
{- type ( string ): The kind of quota restriction, currently either `storage` (size of contained files in bytes) or `file` (number of files).
- limit ( integer ): The allowed limit (either number of files or sum of file sizes in bytes).
- use ( integer ): The current usage (again either number of files or sum of file sizes in bytes).
Examples:
Example1: Basic example==> GET http://192.168.32.191/ajax/drive?action=quota&root=56&session=35cb8c2d1423480692f0d5053d14ba52 <== HTTP 200 OK (9.6854 ms elapsed, 113 bytes received) < Content: { "data" : { "quota" : [{ "limit" : 107374182400, "use" : 1109974882, "type" : "storage" }, { "limit" : 800000000000, "use" : 1577, "type" : "file" } ], "manageLink" : "https://www.example.com/manageQuota" } }
-
-
File- and Directory Name Restrictions
Regarding the case sensitivity of file and directory names, OX Drive works in a case-insensitive, but case-preserving way. That means that there cannot be two files with an equal name ignoring case in the same directory, but it's still possible to synchronize the names in a case-sensitive manner, as well as it's possible to change only the case of file- and directory names.
The same applies to equally named files and directories on the same level in the folder hierarchy, i.e. it's not possible to create a new file in a directory where an equally (ignoring case) named subdirectory already exists and vice versa.
There is a similar restriction regarding file and directory names in the same directory having different unicode normalization forms, yet the same textual representation. OX Drive requires uniqueness regarding this textual representaion of potentially different encoded unicode strings. So, in case the client tries to synchronize two textually equal files or directories, he is instructed to put one of them into quarantine. Internally the server performs an equals-check of the "NFC" normalization forms of the strings, i.e. an unicode string is normalized using full canonical decomposition, followed by the replacement of sequences with their primary composites, if possible. Details regarding unicode normalization can be found at http://www.unicode.org/reports/tr15/tr15-23.html .
Invalid and ignored Filenames
There are some filenames that are invalid or ignored and therefore not synchronized. This means that files with these names should not be taken into account when sending the directory contents to the server, or when calculating the directory checksum (see below). The following list describes when a filename is considered invalid:
- If it contains one of the following reserved characters:
Character | Description |
---|---|
< | less than |
> | greater than |
: | colon |
" | double quote |
/ | forward slash |
|backslash | |
| | vertical bar or pipe |
? | question mark |
* | asterisk |
- It contains a character whose integer representations is in the range from 0 through 31
- The last character is a . (dot) or ' ' (space)
- It's case-invariant name without an optional extension matches one of the reserved names CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, or LPT9
- It consists solely of whitespace characters
The following list gives an overview about the ignored filenames:
- desktop.ini
- Thumbs.db
- .DS_Store
- icon\r
- Any filename ending with .drivepart
- Any filename starting with .msngr_hstr_data_ and ending with .log
Nevertheless, if the client still insists to send a file version with an invalid or ignored filename, the file creation on the server is refused with a corresponding error action (see below).
Invalid and ignored Directory Names
There are also similar restrictions regarding invalid directory names. Any try to include them in the list of directory versions will be responded with a corresponding error action for the directory version. The following list describes when a path is considered invalid:
- If it contains one or of the following reserved characters:
Character | Description |
---|---|
< | less than |
> | greater than |
: | colon |
" | double quote |
\|backslash | |
| | vertical bar or pipe |
? | question mark |
* | asterisk |
- It contains a character whose integer representations is in the range from 0 through 31
- The last character of any subpath (i.e. the last part of the whole path or the part preceding the separator character /) is a . (dot) or ' ' (space)
- It consists solely of whitespace characters
- It not equals the root path /, but ends with a / (forward slash) character
- It contains two or more consecutive / (forward slash) characters
The following list gives an overview about the ignored directory names:
- /.drive
- Any directory whose path ends with /.msngr_hstr_data
Length Restrictions
The maximum allowed length for path segments, i.e. the parts between forward slashes (/
) in directory and filenames, is restricted to 255 characters. Synchronizing a file or directory version that contains path segments longer than this limit leads to those versions being put into quarantine.
Client side filtering
OX Drive clients may define a user- and/or application-defined list of file- and directory name exclusions. Those exclusion filters are then taken into account during synchronization, i.e. files and directories matching a defined exclusion pattern are ignored when comparing the list of server-, client- and original versions. Also, the file exclusion lists are considered for the calculation of aggergated directory checksums.
The exclusion filters may be set, changed or unset at any time during synchronization, there are no additional requests needed to set them up. Instead, the list of excluded files and directories is simply sent along with each syncFolders, syncFiles and download request. The following tables show the JSON representation of file- and directory patterns that are used to build up the exlcusion lists:
Directory pattern
A directory pattern is defined by a pattern string and further attributes.
Name | Type | Value |
---|---|---|
type | String | The pattern type, currently one of exact or glob . |
path | String | The path pattern, in a format depending on the pattern type. |
caseSensitive | Boolean | Optional flag to enable case-sensitive matching, defaults to false |
File pattern
A file pattern is defined by pattern strings for the filename and path, as well as further attributes.
Name | Type | Value |
---|---|---|
type | String | The pattern type, currently one of exact or glob . |
path | String | The path pattern, in a format depending on the pattern type. |
name | String | The filename pattern, in a format depending on the pattern type. |
caseSensitive | Boolean | Optional flag to enable case-sensitive matching, defaults to false |
Pattern types
A pattern currently may be defined in two formats: exact or glob.
- exact
An exact pattern, matching the file- or directory version literally. For example, to exclude the file Backup.pst in the subfolder Mail below the root synchronization folder, an exact file pattern would look like:{"path":"/Mail","name":"Backup.pst","type":"exact"}
, or, an exact directory pattern for the directory /Archive would be represented as{"path":"/Archive","type":"exact"}
. - glob
A simple pattern allowing to use the common wildcards*
and?
to match file- and directory versions. For example, to exclude all files ending with .tmp across all directories, the glob file pattern could be defined as{"path":"*","name":"*.tmp","type":"glob"}
, or, to exclude the directory/Project/.git
and all its subdirectories recursively, this would be expressed using a combination of the following two directory patterns:[{"path":"/Project/.git","type":"exact"},{"path":"/Project/.git*","type":"glob"}]
.
Further considerations
- It's possible to exclude a (parent) directory with an appropriate pattern, while still subfolders below that directory being synchronized. This usually results in the excluded directory being created ob both client- and server side, but no file contents within the excluded directory being exchanged. If subfolders should be excluded, too, a wildcard should be used in the pattern to match any subdirectories.
- If the client tries to synchronize a file- or directory version that is ignored, i.e. a version that would match any of the provided exclusion filters, the server behaves similarly to the handling of invalid and ignored file- and directory names (see above), i.e. the client would be instructed to put those versions into quarantine.
- For the calculation of directory checksums, it's important that the server and client perform exactly the same matching for ignored filenames: A * character matches zero or more characters, a ? character matches exactly one character. All other characters are matched literally. Advanced glob flavors like braces to define subpattern alternatives or square brackets for character sets are not used.
- Client-side filtering is available with API version 2. The API version that is supported by the server is included in the response of the Settings request.
- Whenever there are active exclusion filters, the syncFolders request should contain all of both directory and file exclusion filter lists. For the syncFiles request, it's sufficient to include the list of file exclusions.
Metadata Synchronization
Previously, only the "raw" folders and files were synchronized between server and clients. While this is sufficient for basic synchronization, there are cases where the clients could benefit from additional data - "metadata" - that is already available on the server. For example, clients could display directories that have been shared or published to other people in a different way. Or, clients could consider folder permissions directly in case the user is performing a local change that would be rejected by the server in the next synchronization cycle anyway.
To supply the clients with those additional information without any influence on the existing synchronization protocol (!), .drive-meta files are introduced for each synchronized directory. Regarding synchronization, such files are treated like any other ordinary file. Especially, those files are taken into account when it comes to directory checksum calculation. Doing so, metadata updates result in a changed .drive-meta file, which in turn causes the parent directory checksum to change, hence synchronization is triggered.
However, some special handling applies for those files:
- Clients are not allowed to change metadata, so modifications of metadata files or the deletion of them is rejected. Recovery is done via the protocol here, i.e. the client is instructed to re-download the file.
- .drive-meta files are actually not stored physically on the file storage backend, but created on the fly based on the actual metadata of the directory.
- Client applications may either store such files on the client file system, or evaluate and store the contained metadata information in a local database for later retrieval. If the file is not saved physically on the client (which is actually recommended), the client is responsible to consider the metadata file in a virtual way and include it's checksum for the directory checksum calculation - similar to the server's internal handling.
Note: Embedded metadata synchronization is enabled by default, but can be forcibly disabled by setting the driveMeta parameter to false
in each request.
Metadata format
The metadata in .drive-meta files is serialized in JSON format to allow easy processing at the clients. The following shows an example of the contents:
{
"path": "/",
"localized_name": "Meine Dateien",
"own_rights": 403710016,
"permissions": [{
"bits": 403710016,
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
}],
"shareable": true,
"jump": ["permissions"],
"files": [{
"name": "Koala.jpg",
"created": 1418024190565,
"modified": 1418026995663,
"created_by": {
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
},
"modified_by": {
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
},
"preview": "http://192.168.32.191/ajax/files?action=document&folder=268931&id=268931/297620&version=1&delivery=download&scaleType=contain&width=800&height=800&rotate=true",
"thumbnail": "http://192.168.32.191/ajax/files?action=document&folder=268931&id=268931/297620&version=1&delivery=download&scaleType=contain&width=100&height=100&rotate=true",
"object_permissions": [{
"bits": 1,
"group": false,
"entity": 10,
"display_name": "Klaus Mander",
"email_address": "klaus.mander@example.com",
"guest": false
},
{
"bits": 1,
"group": false,
"entity": 8338,
"email_address": "horst@example.com",
"guest": true
}],
"shareable": true,
"shared": true,
"number_of_versions": 1,
"version": "1",
"jump": ["preview",
"permissions",
"version_history"]
},
{
"name": "test.txt",
"created": 1418024198520,
"modified": 1418027394897,
"created_by": {
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
},
"modified_by": {
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
},
"preview": "http://192.168.32.191/ajax/files?action=document&format=preview_image&folder=268931&id=268931/297621&version=6&delivery=download&scaleType=contain&width=800&height=800",
"thumbnail": "http://192.168.32.191/ajax/files?action=document&format=preview_image&folder=268931&id=268931/297621&version=6&delivery=download&scaleType=contain&width=100&height=100",
"locked": true,
"shareable": true,
"number_of_versions": 4,
"version": "6",
"version_comment": "Uploaded with OX Drive (TestDrive)",
"versions": [{
"name": "test.txt",
"file_size": 23,
"created": 1418024198520,
"modified": 1418024202878,
"created_by": {
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
},
"modified_by": {
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
},
"version": "1",
"version_comment": "Uploaded with OX Drive (TestDrive)"
},
{
"name": "test.txt",
"file_size": 54,
"created": 1418024234782,
"modified": 1418024231522,
"created_by": {
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
},
"modified_by": {
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
},
"version": "2",
"version_comment": "Uploaded with OX Drive (TestDrive)"
},
{
"name": "test.txt",
"file_size": 120,
"created": 1418027349026,
"modified": 1418027355957,
"created_by": {
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
},
"modified_by": {
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
},
"version": "5"
},
{
"name": "test.txt",
"file_size": 127,
"created": 1418027370051,
"modified": 1418027366945,
"created_by": {
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
},
"modified_by": {
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
},
"version": "6",
"version_comment": "Uploaded with OX Drive (TestDrive)"
}],
"jump": ["preview",
"edit",
"permissions",
"version_history"]
},
{
"name": "Kalimba.mp3",
"created": 1418026529047,
"modified": 1247549551659,
"created_by": {
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
},
"modified_by": {
"group": false,
"entity": 182,
"display_name": "Mander, Jens",
"email_address": "jens.mander@example.com",
"guest": false
},
"preview": "http://192.168.32.191/ajax/image/file/mp3Cover?folder=268931&id=268931/297623&version=1&delivery=download&scaleType=contain&width=800&height=800",
"thumbnail": "http://192.168.32.191/ajax/image/file/mp3Cover?folder=268931&id=268931/297623&version=1&delivery=download&scaleType=contain&width=100&height=100",
"shareable": true,
"number_of_versions": 1,
"version": "1",
"version_comment": "Uploaded with OX Drive (TestDrive)",
"jump": ["preview",
"permissions",
"version_history"]
}]
}
The following objects describe the JSON structure of the metadata for a directory:
Directory Metadata
Name | Type | Value |
---|---|---|
id | String | The server-side unique identifier of the directory. |
localized_name | String | The localized display name of the directory, if different from the physical name. |
checksum | String | The directory's checksum. Only set if metadata is not retrieved through Metadata Synchronization. |
own_rights | Number | Folder permissions which apply to the current user, as described in HTTP API (Permission Flags). |
permissions | Array | All folder permissions, each element is an object as described in HTTP API (Permission Object). |
extended_permissions | Array | All folder permissions including some additional information, each element is an object as described in HTTP API (Extended Permission Object). |
default_folder | Boolean | true if the folder is a default folder, false or not set, otherwise. |
has_subfolders | Boolean | true if the folder (potentially) has subfolders, false or not set, otherwise. |
shared | Boolean | true if the folder is shared, false or not set, otherwise. |
shareable | Boolean | true if the folder can be shared to others by the user, false or not set, otherwise. |
not_synchronizable | Boolean | true if the folder is exluded from synchronization, false or not set, otherwise. |
type | Number | The special folder type, or not set, if not available. |
jump | Array | An array containing the names of possible jump methods to use for the folder. |
files | Array | Metadata for the contained files, each element is an object as described in File Metadata. Only set if metadata is retrieved through Metadata Synchronization. |
File Metadata
Name | Type | Value |
---|---|---|
name | String | The name of the file the metadata belongs to. |
checksum | String | The file's checksum. Only set if metadata is not retrieved through Metadata Synchronization. |
path | String | The path of the parent directory. Only set if metadata is not retrieved through Metadata Synchronization. |
created | Timestamp | The file's last modification time (always UTC, not translated into user time). |
modified | Timestamp | The file's last modification time (always UTC, not translated into user time). |
created_by | Number | User ID of the user who created this object. |
modified_by | Number | User ID of the user who last modified this object. |
content_type | String | The content type of the file. |
preview | String | A URL to a preview image for the file. |
thumbnail | String | A URL to a thumbnail image for the file. |
object_permissions | Array | All file permissions, each element is an object as described in HTTP API (Object Permission Object). |
extended_object_permissions | Array | All file permissions including some additional information, each element is an object as described in HTTP API (Extended Object Permission Object). |
shared | Boolean | true if the file is shared, false or not set, otherwise. |
shareable | Boolean | true if the file can be shared to others by the user, false or not set, otherwise. |
locked | Boolean | true if the file is locked, false or not set, otherwise. |
jump | Array | An array containing the names of possible jump methods to use for the file. |
number_of_versions | Number | The number of all versions of the file. |
version | String | The current version identifier (usually, but not necessarily a numerical value) of the file. |
version_comment | String | An additional comment for the file version. |
versions | Array | Metadata for all versions of the file, each element is an object as described in File Version. |
File Version
Name | Type | Value |
---|---|---|
name | String | The name of the file version. |
file_size | Number | The file size of the version in bytes. |
created | Timestamp | The file version's last modification time (always UTC, not translated into user time). |
modified | Timestamp | The file version's last modification time (always UTC, not translated into user time). |
created_by | Number | User ID of the user who created this object. |
modified_by | Number | User ID of the user who last modified this object. |
version | String | The version identifier (usually, but not necessarily a numerical value) of the file version. |
version_comment | String | An additional comment for the file version. |
Client-side implementation
In order to make use of the metadata, clients should roughly implement the following:
- Include the apiVersion parameter in each request, and set it to at least 3 in order to include .drive-meta during synchronization
- Evaluate .drive-meta files and store the information, as well as the file's checksums in a local database
- Include this file in the calculation of the parent directory checksum, just like an ordinary file in that directory
- Do something useful with the metadata information.
Additional notes
- The metadata synchronization via .drive-meta files embedded into the synchronization protocol obsoletes the previously used methods to receive metadata information (fileMetadata and columns parameter in syncFiles).
- Depending on the underlying file storage backend, the included metadata may vary, so each information should be treatened as optional.
- Embedded metadata synchronization is enabled by default, but can be forcibly disabled by setting the driveMeta parameter to
false
in each request.
Possible use cases
- For files where the locked property is
true
, display some kind of "lock" icon (-overlay) in the file list / explorer view - For files or folders where the shared property is
true
, display some kind of "cloud" icon (-overlay) in the file list / explorer view - For files or folders where the user is not allowed to perform an action with, don't offer such actions (e.g. if a file cannot be deleted or renamed by the user due to insufficient permissions, disable the corresponding options)
- Use the URLs in preview and thumbnail to get a preview image for the files
- Display the server creation / last modification timestamps of files and folders
- Embed a version history for files with multiple versions
- Show to which users a file or folder is currently shared
- Offer appropriate "jump" actions to the groupware web interface for more advanced options (e.g. to directly edit an .xlsx file in the spreadsheet application of the web interface, or to manage a folder's permission
Synchronize files for multiple folders
Utilizing the multiple request, it is possible to execute multiple "syncfiles" requests in parallel. Especially during an initial synchronization and in combination with "inline" mode for .drive-meta files, this may reduce the number of necessary requests. Therefore, the parameters and file versions of each syncfiles request are serializied into a JSON array of the multiple-request body. In the same way, the response contains the resulting actions of each "syncfiles" result in an JSON array of the response.
The following shows an example of executing three syncfiles actions inside a single mutliple request:
==> PUT http://local.ox/ajax/multiple?session=0833ca06093a4bad826347a30bf7ace7&continue=true
> Content:
[{
"module": "drive",
"action": "syncfiles",
"root": 33,
"apiVersion": 4,
"path": "/",
"driveMeta": "inline",
"data": {
"clientVersions": [],
"originalVersions": []
}
},
{
"module": "drive",
"action": "syncfiles",
"root": 33,
"apiVersion": 4,
"path": "/Pictures",
"driveMeta": "inline",
"data": {
"clientVersions": [],
"originalVersions": []
}
},
{
"module": "drive",
"action": "syncfiles",
"root": 33,
"apiVersion": 4,
"path": "/Music",
"driveMeta": "inline",
"data": {
"clientVersions": [],
"originalVersions": []
}
}]
<== HTTP 200 OK (92.2341 ms elapsed, 2058 bytes received)
< Content:
[{
"data": [{
"action": "download",
"newVersion": {
"checksum": "e9000b2444dfbc780f91df6586e24615",
"name": ".drive-meta"
},
"totalLength": 1663,
"data": {
"id": "33",
"default_folder": true,
"has_subfolders": true,
"own_rights": 403710016,
"permissions": [{
"bits": 403710016,
"entity": 4,
"group": false
}],
"extended_permissions": [{
"entity": 4,
"bits": 403710016,
"type": "user",
"display_name": "Jens Mander",
"contact": {
"email1": "jens@local.ox",
"last_name": "Mander",
"first_name": "Jens",
"image1_url": "/ajax/image/user/picture?id=4×tamp=1453992059223"
}
}],
"jump": ["permissions"],
"shareable": true,
"files": [{
"name": "versions.txt",
"created": 1458723308686,
"modified": 1458723332449,
"created_by": 4,
"modified_by": 4,
"content_type": "text/plain",
"preview": "http://local.ox/ajax/files?action=document&format=preview_image&folder=33&id=33/488915&version=1&context=1&user=4&delivery=download&scaleType=contain&width=1600&height=1600",
"thumbnail": "http://local.ox/ajax/files?action=document&format=preview_image&folder=33&id=33/488915&version=1&context=1&user=4&delivery=download&scaleType=contain&width=200&height=150",
"shareable": true,
"number_of_versions": 4,
"version": "1",
"versions": [{
"name": "versions.txt",
"file_size": 1,
"created": 1458723308686,
"modified": 1458723308686,
"created_by": 4,
"modified_by": 4,
"version": "1"
},
{
"name": "versions.txt",
"file_size": 3,
"created": 1458723311033,
"modified": 1458723311019,
"created_by": 4,
"modified_by": 4,
"version": "2",
"version_comment": ""
},
{
"name": "versions.txt",
"file_size": 5,
"created": 1458723313260,
"modified": 1458723332449,
"created_by": 4,
"modified_by": 4,
"version": "3",
"version_comment": ""
},
{
"name": "versions.txt",
"file_size": 8,
"created": 1458723316567,
"modified": 1458723316551,
"created_by": 4,
"modified_by": 4,
"version": "4",
"version_comment": ""
}],
"jump": ["preview",
"edit",
"permissions",
"version_history"]
}]
},
"path": "/",
"modified": 1467622558800
},
{
"action": "download",
"newVersion": {
"checksum": "c4ca4238a0b923820dcc509a6f75849b",
"name": "versions.txt"
},
"totalLength": 1,
"created": 1458723308686,
"path": "/",
"modified": 1458723332449
}]
},
{
"data": [{
"action": "download",
"newVersion": {
"checksum": "46114c4a55ed74b836da0fd83809fb06",
"name": ".drive-meta"
},
"totalLength": 2531,
"data": {
"id": "103432",
"default_folder": true,
"has_subfolders": true,
"type": 20,
"own_rights": 403710016,
"permissions": [{
"bits": 403710016,
"entity": 4,
"group": false
},
{
"bits": 257,
"entity": 192,
"group": false
}],
"extended_permissions": [{
"entity": 4,
"bits": 403710016,
"type": "user",
"display_name": "Jens Mander",
"contact": {
"email1": "jens@local.ox",
"last_name": "Mander",
"first_name": "Jens",
"image1_url": "/ajax/image/user/picture?id=4×tamp=1453992059223"
}
},
{
"entity": 192,
"bits": 257,
"type": "guest",
"display_name": "Otto Example",
"contact": {
"email1": "otto@example.com"
}
}],
"jump": ["permissions"],
"shared": true,
"shareable": true,
"files": [{
"name": "Desert.jpg",
"created": 1458717785226,
"modified": 1458717785226,
"created_by": 4,
"modified_by": 4,
"content_type": "image/jpeg",
"preview": "http://local.ox/ajax/files?action=document&folder=103432&id=103432/488906&version=1&context=1&user=4&delivery=download&scaleType=contain&width=1600&height=1600&shrinkOnly=true&rotate=true",
"thumbnail": "http://local.ox/ajax/files?action=document&folder=103432&id=103432/488906&version=1&context=1&user=4&delivery=download&scaleType=contain&width=200&height=150&shrinkOnly=true&rotate=true",
"shareable": true,
"number_of_versions": 1,
"version": "1",
"jump": ["preview",
"permissions",
"version_history"]
},
{
"name": "Hydrangeas.jpg",
"created": 1458717785374,
"modified": 1458717785374,
"created_by": 4,
"modified_by": 4,
"content_type": "image/jpeg",
"preview": "http://local.ox/ajax/files?action=document&folder=103432&id=103432/488907&version=1&context=1&user=4&delivery=download&scaleType=contain&width=1600&height=1600&shrinkOnly=true&rotate=true",
"thumbnail": "http://local.ox/ajax/files?action=document&folder=103432&id=103432/488907&version=1&context=1&user=4&delivery=download&scaleType=contain&width=200&height=150&shrinkOnly=true&rotate=true",
"shareable": true,
"number_of_versions": 1,
"version": "1",
"jump": ["preview",
"permissions",
"version_history"]
},
{
"name": "2110.JPG",
"created": 1460283874321,
"modified": 1460443249927,
"created_by": 4,
"modified_by": 4,
"content_type": "image/jpeg",
"preview": "http://local.ox/ajax/files?action=document&folder=103432&id=103432/494179&version=1&context=1&user=4&delivery=download&scaleType=contain&width=1600&height=1600&shrinkOnly=true&rotate=true",
"thumbnail": "http://local.ox/ajax/files?action=document&folder=103432&id=103432/494179&version=1&context=1&user=4&delivery=download&scaleType=contain&width=200&height=150&shrinkOnly=true&rotate=true",
"shareable": true,
"number_of_versions": 1,
"version": "1",
"jump": ["preview",
"permissions",
"version_history"]
}]
},
"path": "/Pictures",
"modified": 1459842066104
},
{
"action": "download",
"newVersion": {
"checksum": "7c1e3c12567f8279dff97faee04af9c2",
"name": "2110.JPG"
},
"totalLength": 4421093,
"created": 1460283874321,
"path": "/Pictures",
"modified": 1460443249927
},
{
"action": "download",
"newVersion": {
"checksum": "ba45c8f60456a672e003a875e469d0eb",
"name": "Desert.jpg"
},
"totalLength": 845941,
"created": 1458717785226,
"path": "/Pictures",
"modified": 1458717785226
},
{
"action": "download",
"newVersion": {
"checksum": "bdf3bf1da3405725be763540d6601144",
"name": "Hydrangeas.jpg"
},
"totalLength": 595284,
"created": 1458717785374,
"path": "/Pictures",
"modified": 1458717785374
}]
},
{
"data": [{
"action": "download",
"newVersion": {
"checksum": "9829c1949b6347cec22467e34b0814dd",
"name": ".drive-meta"
},
"totalLength": 438,
"data": {
"id": "103434",
"default_folder": true,
"type": 22,
"own_rights": 403710016,
"permissions": [{
"bits": 403710016,
"entity": 4,
"group": false
}],
"extended_permissions": [{
"entity": 4,
"bits": 403710016,
"type": "user",
"display_name": "Jens Mander",
"contact": {
"email1": "jens@local.ox",
"last_name": "Mander",
"first_name": "Jens",
"image1_url": "/ajax/image/user/picture?id=4×tamp=1453992059223"
}
}],
"jump": ["permissions"],
"shareable": true,
"files": []
},
"path": "/Music",
"modified": 1465453273921
}]
}]