Get file storage locations
Returns information about file location on each storage backend. null value for a storage backend
means that there is no file replica on this storage backend.
Supported for directories and regular files.
This endpoint returns a subset of information offered by the
Get data distribution endpoint.
Example cURL requests
Get file storage locations
curl -H "X-Auth-Token: $TOKEN" -X GET "https://$PROVIDER_HOST/api/v3/oneprovider/data/$FILE_ID/storage_locations"
{
"locationsPerProvider": {
"$PROVIDER_ID1": {
"success": true,
"locationsPerStorageBackend": {
"$STORAGE_ID1": {
"success": "true",
"location": "path/to/file"
}
}
},
"$PROVIDER_ID2": {
"success": true,
"locationsPerStorageBackend": {
"$STORAGE_ID2": {
"success": "true",
"location": null
}
}
},
"$PROVIDER_ID3": {
"success": true,
"locationsPerStorageBackend": {
"$STORAGE_ID2": {
"success": false,
"error": {
"id": "requiresPosixCompatibleStorage",
"details": {
"storageId": "b2ce3858c7267a9c016296e51dc9c41cch3618",
"posixCompatibleStorages": ["posix", "glusterfs", "nfs", "nulldevice"]
},
"description": "Cannot apply for the storage backend \"b2ce3858c7267a9c016296e51dc9c41cch3618\". This operation requires a POSIX-compatible storage backend (any of: posix, glusterfs, nfs, nulldevice).",
}
}
}
}
}
}
Path parameters
| Parameter | Type & Description |
|---|---|
| id required | string The Id of the file |
Request Examples
oneprovider-rest-cli getFileStorageLocations id=$FILE_IDResponses
Storage file locations.
| Property | Type & Description |
|---|---|
locationsPerProvider object | |
Example
{
"locationsPerProvider": {
"$PROVIDER_ID1": {
"success": true,
"locationsPerStorageBackend": {
"$STORAGE_ID": {
"success": true,
"location": "path/to/file"
}
}
},
"$PROVIDER_ID2": {
"success": true,
"locationsPerStorageBackend": {
"$STORAGE_ID": {
"success": true,
"location": null
}
}
},
"$PROVIDER_ID3": {
"success": false,
"error": {
"description": "Operation failed with POSIX error: enoent.",
"details": {
"errno": "enoent"
}
}
},
"$PROVIDER_ID4": {
"success": true,
"locationsPerStorageBackend": {
"$STORAGE_ID": {
"success": false,
"error": {
"id": "requiresPosixCompatibleStorage",
"description": "Cannot apply for the storage backend \"b2ce3858c7267a9c016296e51dc9c41cch3618\". This operation requires a POSIX-compatible storage backend (any of: posix, glusterfs, nfs, nulldevice).",
"details": {
"storageId": "$STORAGE_ID",
"posixCompatibleStorages\"": [
"posix",
"glusterfs",
"nfs",
"nulldevice"
]
}
}
}
}
}
}
}Invalid request.
| Property | Type & Description | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
error object (ErrorJson) Object describing an error.
| |||||||||||||||||||||||||||
Example
{
"error": {
"id": "example",
"description": "This is an example error.",
"ctx": {
"timestamp": 1750762637248,
"serviceReleaseVersion": "25.0",
"serviceId": "a7ee2722915b8bf7fb064eb65087cc61ch9357",
"serviceDomain": "dev-oneprovider-krakow.default.svc.cluster.local",
"serviceBuildVersion": "231-g8d26f953c3",
"service": "opw",
"onedataErrorsRevision": "ca3af8cb",
"module": "metadata_req",
"line": 45
}
}
}Forbidden request.
| Property | Type & Description | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
error object (ErrorJson) Object describing an error.
| |||||||||||||||||||||||||||
Example
{
"error": {
"id": "example",
"description": "This is an example error.",
"ctx": {
"timestamp": 1750762637248,
"serviceReleaseVersion": "25.0",
"serviceId": "a7ee2722915b8bf7fb064eb65087cc61ch9357",
"serviceDomain": "dev-oneprovider-krakow.default.svc.cluster.local",
"serviceBuildVersion": "231-g8d26f953c3",
"service": "opw",
"onedataErrorsRevision": "ca3af8cb",
"module": "metadata_req",
"line": 45
}
}
}File not found.
| Property | Type & Description | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
error object (ErrorJson) Object describing an error.
| |||||||||||||||||||||||||||
Example
{
"error": {
"id": "example",
"description": "This is an example error.",
"ctx": {
"timestamp": 1750762637248,
"serviceReleaseVersion": "25.0",
"serviceId": "a7ee2722915b8bf7fb064eb65087cc61ch9357",
"serviceDomain": "dev-oneprovider-krakow.default.svc.cluster.local",
"serviceBuildVersion": "231-g8d26f953c3",
"service": "opw",
"onedataErrorsRevision": "ca3af8cb",
"module": "metadata_req",
"line": 45
}
}
}Internal server error.
| Property | Type & Description | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
error object (ErrorJson) Object describing an error.
| |||||||||||||||||||||||||||
Example
{
"error": {
"id": "example",
"description": "This is an example error.",
"ctx": {
"timestamp": 1750762637248,
"serviceReleaseVersion": "25.0",
"serviceId": "a7ee2722915b8bf7fb064eb65087cc61ch9357",
"serviceDomain": "dev-oneprovider-krakow.default.svc.cluster.local",
"serviceBuildVersion": "231-g8d26f953c3",
"service": "opw",
"onedataErrorsRevision": "ca3af8cb",
"module": "metadata_req",
"line": 45
}
}
}