Adding a Storage Backend
Function
This API is used to add a storage backend for an SFS Turbo file system.
Constraints
This API is only supported for SFS Turbo 1,000 MB/s/TiB, 500 MB/s/TiB, 250 MB/s/TiB, 125 MB/s/TiB, 40 MB/s/TiB, and 20 MB/s/TiB file systems. Request body parameter file_system_path must be the name of a directory that cannot be found in the file system root directory.
URI
POST /v1/{project_id}/sfs-turbo/shares/{share_id}/targets
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
The project ID. |
share_id |
Yes |
String |
The file system ID. |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
Yes |
String |
The account token. |
Content-Type |
Yes |
String |
The MIME type. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
file_system_path |
Yes |
String |
The name of the interworking directory. SFS Turbo will create a subdirectory with this name in the file system root directory. This subdirectory is associated with the storage backend. It must be unique, can contain no more than 63 characters, and cannot be a period (.) or two periods (..). It cannot contain slashes (/), and cannot be the name of a multi-level directory. |
obs |
Yes |
ObsDataRepository object |
The OBS storage backend. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
bucket |
Yes |
String |
The OBS bucket name. |
endpoint |
Yes |
String |
The OBS bucket endpoint. |
policy |
No |
ObsDataRepositoryPolicy object |
The auto synchronization policy of the storage backend. |
attributes |
No |
ObsTargetAttributes object |
The attributes of the storage backend. This parameter is not supported for file systems that are created on or before June 30, 2024 and have not been upgraded. Submit a service ticket if you need it. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
auto_export_policy |
No |
AutoExportPolicy object |
The auto export policy of the storage backend. If enabled, all updates made on the file system will be automatically exported to the OBS bucket. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
events |
No |
Array of strings |
The type of data automatically exported to the OBS bucket.
Enumeration values:
|
prefix |
No |
String |
The prefix to be matched in the storage backend. |
suffix |
No |
String |
The suffix to be matched in the storage backend. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
file_mode |
No |
Integer |
The permissions on the imported file. Value range: 0 to 777 The first digit indicates the permissions of the file owner, and its value ranges from 0 to 7. The second digit indicates the permissions of the user group to which the file belongs, and its value ranges from 0 to 7. The third digit indicates the permissions of other users, and its value ranges from 0 to 7. The file owner is specified by UID, and the user group to which the file belongs is specified by GID. Users who are not the file owner and not in the user group to which the file belongs are other users. Values 4, 2, and 1 indicate the read, write, and execute permissions respectively. The total value between 1 and 7 represents the access permissions. For example, the first digit 7 in 750 indicates that the file owner has the read, write, and execute permissions on the file, the second digit 5 indicates that the user group to which the file belongs has the read and execute permissions on the file, and the third digit 0 indicates that other users have no permission on the file. |
dir_mode |
No |
Integer |
The permissions on the imported directory. Value range: 0 to 777 The first digit indicates the permissions of the directory owner, and its value ranges from 0 to 7. The second digit indicates the permissions of the user group to which the directory belongs, and its value ranges from 0 to 7. The third digit indicates the permissions of other users, and its value ranges from 0 to 7. The directory owner is specified by UID, and the user group to which the directory belongs is specified by GID. Users who are not the directory owner and not in the user group to which the directory belongs are other users. Values 4, 2, and 1 indicate the read, write, and execute permissions respectively. The total value between 1 and 7 represents the access permissions. For example, the first digit 7 in 750 indicates that the directory owner has the read, write, and execute permissions on the directory, the second digit 5 indicates that the user group to which the directory belongs has the read and execute permissions on the directory, and the third digit 0 indicates that other users have no permission on the directory. |
uid |
No |
Integer |
The ID of the user who owns the imported object. The default value is 0. The value ranges from 0 to 4294967294 (2^32-2). |
gid |
No |
Integer |
The ID of the user group to which the imported object belongs. The default value is 0. The value ranges from 0 to 4294967294 (2^32-2). |
Response Parameters
Status code: 202
Parameter |
Type |
Description |
---|---|---|
X-request-id |
String |
The request ID. |
Parameter |
Type |
Description |
---|---|---|
target_id |
String |
The storage backend ID. |
creation_time |
String |
The time when the storage backend was added. |
failure_details |
FailureDetailsMessage object |
The association error information. |
file_system_path |
String |
The interworking directory name. |
lifecycle |
String |
The association status. CREATING means that the storage backend is being created. You can call the API for querying details of a storage backend to query the status in polling mode. AVAILABLE means that the storage backend is added successfully. MISCONFIGURED means that the storage backend fails to be added. DELETING is currently not supported. Enumeration values:
|
obs |
ObsDataRepository object |
The OBS storage backend. |
Parameter |
Type |
Description |
---|---|---|
bucket |
String |
The OBS bucket name. |
endpoint |
String |
The OBS bucket endpoint. |
policy |
ObsDataRepositoryPolicy object |
The auto synchronization policy of the storage backend. |
attributes |
ObsTargetAttributes object |
The attributes of the storage backend. This parameter is not supported for file systems that are created on or before June 30, 2024 and have not been upgraded. Submit a service ticket if you need it. |
Parameter |
Type |
Description |
---|---|---|
auto_export_policy |
AutoExportPolicy object |
The auto export policy of the storage backend. If enabled, all updates made on the file system will be automatically exported to the OBS bucket. |
Parameter |
Type |
Description |
---|---|---|
events |
Array of strings |
The type of data automatically exported to the OBS bucket.
Enumeration values:
|
prefix |
String |
The prefix to be matched in the storage backend. |
suffix |
String |
The suffix to be matched in the storage backend. |
Parameter |
Type |
Description |
---|---|---|
file_mode |
Integer |
The permissions on the imported file. Value range: 0 to 777 The first digit indicates the permissions of the file owner, and its value ranges from 0 to 7. The second digit indicates the permissions of the user group to which the file belongs, and its value ranges from 0 to 7. The third digit indicates the permissions of other users, and its value ranges from 0 to 7. The file owner is specified by UID, and the user group to which the file belongs is specified by GID. Users who are not the file owner and not in the user group to which the file belongs are other users. Values 4, 2, and 1 indicate the read, write, and execute permissions respectively. The total value between 1 and 7 represents the access permissions. For example, the first digit 7 in 750 indicates that the file owner has the read, write, and execute permissions on the file, the second digit 5 indicates that the user group to which the file belongs has the read and execute permissions on the file, and the third digit 0 indicates that other users have no permission on the file. |
dir_mode |
Integer |
The permissions on the imported directory. Value range: 0 to 777 The first digit indicates the permissions of the directory owner, and its value ranges from 0 to 7. The second digit indicates the permissions of the user group to which the directory belongs, and its value ranges from 0 to 7. The third digit indicates the permissions of other users, and its value ranges from 0 to 7. The directory owner is specified by UID, and the user group to which the directory belongs is specified by GID. Users who are not the directory owner and not in the user group to which the directory belongs are other users. Values 4, 2, and 1 indicate the read, write, and execute permissions respectively. The total value between 1 and 7 represents the access permissions. For example, the first digit 7 in 750 indicates that the directory owner has the read, write, and execute permissions on the directory, the second digit 5 indicates that the user group to which the directory belongs has the read and execute permissions on the directory, and the third digit 0 indicates that other users have no permission on the directory. |
uid |
Integer |
The ID of the user who owns the imported object. The default value is 0. The value ranges from 0 to 4294967294 (2^32-2). |
gid |
Integer |
The ID of the user group to which the imported object belongs. The default value is 0. The value ranges from 0 to 4294967294 (2^32-2). |
Status code: 400
Parameter |
Type |
Description |
---|---|---|
errCode |
String |
The error code. |
errMsg |
String |
The error message. |
Status code: 500
Parameter |
Type |
Description |
---|---|---|
errCode |
String |
The error code. |
errMsg |
String |
The error message. |
Example Requests
-
This example adds a storage backend for the file system whose ID is 630509b1-ded4-476e-8d06-dbbc3dc23900. The OBS bucket name is myBucket, the OBS bucket endpoint is obs.region.example.com, and the name of the interworking directory is sfsturboDirName.
POST HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/630509b1-ded4-476e-8d06-dbbc3dc23900/targets { "file_system_path" : "sfsturboDirName", "obs" : { "bucket" : "myBucket", "endpoint" : "obs.region.example.com" } }
-
This example adds a storage backend for the file system whose ID is 630509b1-ded4-476e-8d06-dbbc3dc23900. The OBS bucket name is myBucket, the OBS bucket endpoint is obs.region.example.com, and the name of the interworking directory is sfsturboDirName. The permissions of imported files are set to 750, and the permissions of imported directories are set to 640.
POST HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/630509b1-ded4-476e-8d06-dbbc3dc23900/targets { "file_system_path" : "sfsturboDirName", "obs" : { "bucket" : "myBucket", "endpoint" : "obs.region.example.com", "attributes" : { "file_mode" : 750, "dir_mode" : 640 } } }
-
This example adds a storage backend for the file system whose ID is 630509b1-ded4-476e-8d06-dbbc3dc23900. The OBS bucket name is myBucket, the OBS bucket endpoint is obs.region.example.com, and the name of the interworking directory is sfsturboDirName. The permissions of imported files are set to 750, the permissions of imported directories are set to 640, and both the UIDs and GIDs of the imported files and directories are set to 0.
POST HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/630509b1-ded4-476e-8d06-dbbc3dc23900/targets { "file_system_path" : "sfsturboDirName", "obs" : { "bucket" : "myBucket", "endpoint" : "obs.region.example.com", "attributes" : { "file_mode" : 750, "dir_mode" : 640, "uid" : 0, "gid" : 0 } } }
-
This example adds a storage backend for the file system whose ID is 630509b1-ded4-476e-8d06-dbbc3dc23900. The OBS bucket name is myBucket, the OBS bucket endpoint is obs.region.example.com, and the name of the interworking directory is sfsturboDirName. The data types of the auto export policy are set to NEW, CHANGED, and DELETED.
POST HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/630509b1-ded4-476e-8d06-dbbc3dc23900/targets { "file_system_path" : "sfsturboDirName", "obs" : { "bucket" : "myBucket", "endpoint" : "obs.region.example.com", "policy" : { "auto_export_policy" : { "events" : [ "NEW", "CHANGED", "DELETED" ] } } } }
Example Responses
Status code: 202
Task delivered
{
"target_id" : "00000334-xxxx-402d-a5d4-bxxxxx87b939",
"creation_time" : "2023-11-19T04:02:03",
"file_system_path" : "sfsturboDirName",
"lifecycle" : "CREATING",
"obs" : {
"bucket" : "myBucket",
"endpoint" : "obs.region.example.com"
}
}
Status code: 400
Error response
{
"errCode" : "SFS.TURBO.0001",
"errMsg" : "request path/body parameters invalid"
}
Status code: 500
Error response
{
"errCode" : "SFS.TURBO.0005",
"errMsg" : "internal server error"
}
Status Codes
Status Code |
Description |
---|---|
202 |
Task delivered |
400 |
Error response |
500 |
Error response |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot