Write to an existing file with the supplied data
PATCH /storage/volumes/{volume.uuid}/files/{path}
Introduced In: 9.8
Writes to an existing file with the supplied data or modifies the size, name, space reservation information, QoS policy, or hole range information of a file. Query-based PATCH operations are not supported.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
volume.uuid |
string |
path |
True |
Volume UUID |
path |
string |
path |
True |
Relative path of a file in the volume. The path field requires using "%2E" to represent "." and "%2F" to represent "/" for the path provided. |
byte_offset |
integer |
query |
False |
How many bytes into the file to begin writing. Use -1 to append (default). |
stream_name |
string |
query |
False |
Name of stream associated with the file to write data to. |
return_records |
boolean |
query |
False |
The default is false. If set to true, the records are returned.
|
Request Body
Name | Type | Description | ||
---|---|---|---|---|
_links |
||||
accessed_time |
string |
Last access time of the file in date-time format. |
||
analytics |
Additional file system analytics information summarizing all descendents of a directory. This property is only populated if file system analytics is enabled on the containing volume. In the context of the |
|||
bytes_used |
integer |
The actual number of bytes used on disk by this file. If byte_offset and length parameters are specified, this will return the bytes used by the file within the given range. |
||
changed_time |
string |
Last time data or attributes changed on the file in date-time format. |
||
constituent |
||||
creation_time |
string |
Creation time of the file in date-time format. |
||
fill_enabled |
boolean |
Returns "true" if the space reservation is enabled. The field overwrite_enabled must also be set to the same value as this field. |
||
group_id |
integer |
The integer ID of the group of the file owner. |
||
hard_links_count |
integer |
The number of hard links to the file. |
||
holes |
array[file_hole] |
List of hole ranges in the file. |
||
inode_generation |
integer |
Inode generation number. |
||
inode_number |
integer |
The file inode number. |
||
is_empty |
boolean |
Specifies whether or not a directory is empty. A directory is considered empty if it only contains entries for "." and "..". This element is present if the file is a directory. In some special error cases, such as when the volume goes offline or when the directory is moved while retrieving this info, this field might not get set. |
||
is_junction |
boolean |
Returns "true" if the directory is a junction. |
||
is_snapshot |
boolean |
Returns "true" if the directory is a Snapshot copy. |
||
is_vm_aligned |
boolean |
Returns true if the file is vm-aligned. A vm-aligned file is a file that is initially padded with zero-filled data so that its actual data starts at an offset other than zero. The amount by which the start offset is adjusted depends on the vm-align setting of the hosting volume. |
||
modified_time |
string |
Last data modification time of the file in date-time format. |
||
name |
string |
Name of the file. |
||
overwrite_enabled |
boolean |
Returns "true" if the space reservation for overwrites is enabled. The field fill_enabled must also be set to the same value as this field. |
||
owner_id |
integer |
The integer ID of the file owner. |
||
path |
string |
Path of the file. |
||
qos_policy |
The QoS policy for the file. Both traditional and adaptive QoS policies are supported. If both
Note that a QoS policy can be set on a file, or a file's volume, but not on both. |
|||
size |
integer |
The size of the file, in bytes. |
||
target |
string |
The relative or absolute path contained in a symlink, in the form |
||
type |
string |
Type of the file. |
||
unique_bytes |
integer |
Number of bytes uniquely held by this file. If byte_offset and length parameters are specified, this will return bytes uniquely held by the file within the given range. |
||
unix_permissions |
integer |
UNIX permissions to be viewed as an octal number. It consists of 4 digits derived by adding up bits 4 (read), 2 (write), and 1 (execute). The first digit selects the set user ID(4), set group ID (2), and sticky (1) attributes. The second digit selects permissions for the owner of the file; the third selects permissions for other users in the same group; the fourth selects permissions for other users not in the group. |
||
volume |
Example request
{
"_links": {
"metadata": {
"href": "/api/resourcelink"
},
"self": {
"href": "/api/resourcelink"
}
},
"accessed_time": "2019-06-12 11:00:16 -0400",
"analytics": {
"by_accessed_time": {
"bytes_used": {
"labels": [
"2019-07",
"2019-06",
"2019-05",
"2019",
"2018",
"--2017",
"unknown"
],
"newest_label": "2019-07",
"oldest_label": "2019-07",
"percentages": [
0.1,
11.24,
0.18,
15.75,
0.75,
83.5,
0
],
"values": [
15925248,
1735569408,
27672576,
2430595072,
116105216,
12889948160,
0
]
}
},
"by_modified_time": {
"bytes_used": {
"labels": [
"2019-07",
"2019-06",
"2019-05",
"2019",
"2018",
"--2017",
"unknown"
],
"newest_label": "2019-07",
"oldest_label": "2019-07",
"percentages": [
0.1,
11.24,
0.18,
15.75,
0.75,
83.5,
0
],
"values": [
15925248,
1735569408,
27672576,
2430595072,
116105216,
12889948160,
0
]
}
},
"bytes_used": 15436648448,
"file_count": 21134,
"subdir_count": 35
},
"bytes_used": 4096,
"changed_time": "2019-06-12 11:00:16 -0400",
"constituent": {
"name": "fg__0001",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"creation_time": "2019-06-12 11:00:16 -0400",
"group_id": 30,
"hard_links_count": 1,
"holes": [
{
}
],
"inode_generation": 214753547,
"inode_number": 1695,
"is_empty": "",
"is_junction": "",
"is_snapshot": "",
"is_vm_aligned": "",
"modified_time": "2019-06-12 11:00:16 -0400",
"name": "test_file",
"owner_id": 54738,
"path": "d1/d2/d3",
"qos_policy": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "qos1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"size": 200,
"target": "some_directory/some_other_directory/some_file",
"type": "file",
"unique_bytes": 4096,
"unix_permissions": 493,
"volume": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "volume1",
"uuid": "028baa66-41bd-11e9-81d5-00a0986138f7"
}
}
Response
Status: 200, Ok
Error
Status: Default
ONTAP Error Response Codes
Error Code | Description |
---|---|
918235 |
A volume with UUID {volume.uuid} was not found. |
6488081 |
The {field} field is not supported for PATCH operations. |
6488082 |
Failed to rename {path}. |
6488083 |
Failed to rename {path} to {path} because a directory named {path} already exists. |
6488111 |
The fields 'fill_enabled' and 'overwrite_enabled' are not supported in the directory modify operation. |
6488117 |
Permission denied. |
6488119 |
Operation not supported. |
Also see the table of common errors in the Response body overview section of this documentation.
Name | Type | Description |
---|---|---|
error |
Example error
{
"error": {
"arguments": [
{
"code": "string",
"message": "string"
}
],
"code": "4",
"message": "entry doesn't exist",
"target": "uuid"
}
}
Definitions
See Definitions
href
Name | Type | Description |
---|---|---|
href |
string |
_links
Name | Type | Description |
---|---|---|
metadata |
||
self |
bytes_used
Number of bytes used on-disk, broken down by date of last access.
Name | Type | Description |
---|---|---|
labels |
array[string] |
Labels for this histogram |
newest_label |
string |
Each label indicates the period of time the corresponding data is associated with. A label can take one of the following forms:<ul> a partial date in an extended ISO8601 representation an interval between partial dates in an extended ISO8601 representation, where "--" is used to separate the beginning and end of the interval the string literal "unknown" </ul>For partial dates and partial date intervals where components of a date are unspecified, the label allows for any valid normalized values the unspecified components might take. For example, the label "2017" allows for any time within the year 2017. Essentially, this is the fully specified interval 2017-01-01T00:00:00—2017-12-31T23:59:59. Similarly, the interval "2018-05—2018-07" allows for any time within the months of May, June, and July in 2018, corresponding to the fully specified interval 2018-05-01T00:00:00—2018-07-31T23:59:59. The following extensions to ISO8601 are used:<ul> Quarters may be specified. The form yyyy-Qq is used to represent the qth quarter of the year yyyy. Q1 consists of the months January, February, and March; Q2 consists of April, May, and June; Q3 consists of July, August, and September; Q4 consists of October, November, and December. For example, the label "2019-Q2" represents the second quarter of the year 2019, which corresponds to the interval 2019-04-01T00:00:00—2019-06-30T23:59:59. Either the beginning or end of an interval may be omitted. When the beginning is omitted, the interval includes points in time arbitrarily far in the past. When the end is omitted, the interval includes points in time through the end of the current week. </ul>The "unknown" label tracks data that could not be associated with any other time period. This usually occurs when the data was at some point associated with a time in the future. |
oldest_label |
string |
Each label indicates the period of time the corresponding data is associated with. A label can take one of the following forms:<ul> a partial date in an extended ISO8601 representation an interval between partial dates in an extended ISO8601 representation, where "--" is used to separate the beginning and end of the interval the string literal "unknown" </ul>For partial dates and partial date intervals where components of a date are unspecified, the label allows for any valid normalized values the unspecified components might take. For example, the label "2017" allows for any time within the year 2017. Essentially, this is the fully specified interval 2017-01-01T00:00:00—2017-12-31T23:59:59. Similarly, the interval "2018-05—2018-07" allows for any time within the months of May, June, and July in 2018, corresponding to the fully specified interval 2018-05-01T00:00:00—2018-07-31T23:59:59. The following extensions to ISO8601 are used:<ul> Quarters may be specified. The form yyyy-Qq is used to represent the qth quarter of the year yyyy. Q1 consists of the months January, February, and March; Q2 consists of April, May, and June; Q3 consists of July, August, and September; Q4 consists of October, November, and December. For example, the label "2019-Q2" represents the second quarter of the year 2019, which corresponds to the interval 2019-04-01T00:00:00—2019-06-30T23:59:59. Either the beginning or end of an interval may be omitted. When the beginning is omitted, the interval includes points in time arbitrarily far in the past. When the end is omitted, the interval includes points in time through the end of the current week. </ul>The "unknown" label tracks data that could not be associated with any other time period. This usually occurs when the data was at some point associated with a time in the future. |
percentages |
array[number] |
Percentages for this histogram |
values |
array[integer] |
Values for this histogram |
by_accessed_time
File system analytics information, broken down by date of last access.
Name | Type | Description |
---|---|---|
bytes_used |
Number of bytes used on-disk, broken down by date of last access. |
bytes_used
Number of bytes used on-disk, broken down by date of last modification.
Name | Type | Description |
---|---|---|
labels |
array[string] |
Labels for this histogram |
newest_label |
string |
Each label indicates the period of time the corresponding data is associated with. A label can take one of the following forms:<ul> a partial date in an extended ISO8601 representation an interval between partial dates in an extended ISO8601 representation, where "--" is used to separate the beginning and end of the interval the string literal "unknown" </ul>For partial dates and partial date intervals where components of a date are unspecified, the label allows for any valid normalized values the unspecified components might take. For example, the label "2017" allows for any time within the year 2017. Essentially, this is the fully specified interval 2017-01-01T00:00:00—2017-12-31T23:59:59. Similarly, the interval "2018-05—2018-07" allows for any time within the months of May, June, and July in 2018, corresponding to the fully specified interval 2018-05-01T00:00:00—2018-07-31T23:59:59. The following extensions to ISO8601 are used:<ul> Quarters may be specified. The form yyyy-Qq is used to represent the qth quarter of the year yyyy. Q1 consists of the months January, February, and March; Q2 consists of April, May, and June; Q3 consists of July, August, and September; Q4 consists of October, November, and December. For example, the label "2019-Q2" represents the second quarter of the year 2019, which corresponds to the interval 2019-04-01T00:00:00—2019-06-30T23:59:59. Either the beginning or end of an interval may be omitted. When the beginning is omitted, the interval includes points in time arbitrarily far in the past. When the end is omitted, the interval includes points in time through the end of the current week. </ul>The "unknown" label tracks data that could not be associated with any other time period. This usually occurs when the data was at some point associated with a time in the future. |
oldest_label |
string |
Each label indicates the period of time the corresponding data is associated with. A label can take one of the following forms:<ul> a partial date in an extended ISO8601 representation an interval between partial dates in an extended ISO8601 representation, where "--" is used to separate the beginning and end of the interval the string literal "unknown" </ul>For partial dates and partial date intervals where components of a date are unspecified, the label allows for any valid normalized values the unspecified components might take. For example, the label "2017" allows for any time within the year 2017. Essentially, this is the fully specified interval 2017-01-01T00:00:00—2017-12-31T23:59:59. Similarly, the interval "2018-05—2018-07" allows for any time within the months of May, June, and July in 2018, corresponding to the fully specified interval 2018-05-01T00:00:00—2018-07-31T23:59:59. The following extensions to ISO8601 are used:<ul> Quarters may be specified. The form yyyy-Qq is used to represent the qth quarter of the year yyyy. Q1 consists of the months January, February, and March; Q2 consists of April, May, and June; Q3 consists of July, August, and September; Q4 consists of October, November, and December. For example, the label "2019-Q2" represents the second quarter of the year 2019, which corresponds to the interval 2019-04-01T00:00:00—2019-06-30T23:59:59. Either the beginning or end of an interval may be omitted. When the beginning is omitted, the interval includes points in time arbitrarily far in the past. When the end is omitted, the interval includes points in time through the end of the current week. </ul>The "unknown" label tracks data that could not be associated with any other time period. This usually occurs when the data was at some point associated with a time in the future. |
percentages |
array[number] |
Percentages for this histogram |
values |
array[integer] |
Values for this histogram |
by_modified_time
File system analytics information, broken down by date of last modification.
Name | Type | Description |
---|---|---|
bytes_used |