Storage
Finalize uploaded file.
Finalize uploaded file. The request enforces Storage access, workspace ownership, and entry lifecycle state.
PUT
/
api
/
v1
/
storage
/
uploads
/
{storageUploadSessionId}
/
finalize
Finalize uploaded file.
curl --request PUT \
--url https://api.revoengine.com/api/v1/storage/uploads/{storageUploadSessionId}/finalize \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"expectedPartCount": 24,
"expectedPartNumbers": [
1,
2,
4
],
"metadata": {
"scope": "integration",
"finalized": true
},
"computeStats": "none"
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
expectedPartCount: 24,
expectedPartNumbers: [1, 2, 4],
metadata: {scope: 'integration', finalized: true},
computeStats: 'none'
})
};
fetch('https://api.revoengine.com/api/v1/storage/uploads/{storageUploadSessionId}/finalize', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.revoengine.com/api/v1/storage/uploads/{storageUploadSessionId}/finalize"
payload = {
"expectedPartCount": 24,
"expectedPartNumbers": [1, 2, 4],
"metadata": {
"scope": "integration",
"finalized": True
},
"computeStats": "none"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)Authorizations
Bearer JWT token or API Key (sk-*).
Path Parameters
Body
application/json
Expected contiguous multipart count (parts 1..N). Use this to fence distributed uploads against missing parts.
Required range:
x >= 1Example:
24
Expected explicit multipart numbers. Use for sparse distributed uploads; cannot be combined with expectedPartCount.
Maximum array length:
100000Example:
[1, 2, 4]
Optional metadata replacement at finalize time. Values may use any JSON type. Maximum 16 KiB and 64 top-level keys. Top-level keys starting with "__" are reserved for backend use.
Example:
{ "scope": "integration", "finalized": true }
Optional post-finalize compute mode.
Available options:
none, sync, async Example:
"none"
Response
200
OK.
⌘I
Finalize uploaded file.
curl --request PUT \
--url https://api.revoengine.com/api/v1/storage/uploads/{storageUploadSessionId}/finalize \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"expectedPartCount": 24,
"expectedPartNumbers": [
1,
2,
4
],
"metadata": {
"scope": "integration",
"finalized": true
},
"computeStats": "none"
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
expectedPartCount: 24,
expectedPartNumbers: [1, 2, 4],
metadata: {scope: 'integration', finalized: true},
computeStats: 'none'
})
};
fetch('https://api.revoengine.com/api/v1/storage/uploads/{storageUploadSessionId}/finalize', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.revoengine.com/api/v1/storage/uploads/{storageUploadSessionId}/finalize"
payload = {
"expectedPartCount": 24,
"expectedPartNumbers": [1, 2, 4],
"metadata": {
"scope": "integration",
"finalized": True
},
"computeStats": "none"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)
