curl -X POST https://app.drime.cloud/api/v1/s3/multipart/get-uploaded-parts \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"key": "uploads/1e4cbca8.../1e4cbca8...",
"uploadId": "AFNhWKh6Cn6f..."
}'
// Check which parts are already uploaded
const response = await fetch('https://app.drime.cloud/api/v1/s3/multipart/get-uploaded-parts', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({ key, uploadId })
});
const { parts } = await response.json();
const uploadedPartNumbers = new Set(parts.map(p => p.PartNumber));
// Only upload missing parts
for (let i = 1; i <= totalParts; i++) {
if (!uploadedPartNumbers.has(i)) {
// Upload this part
}
}
import requests
response = requests.post(
'https://app.drime.cloud/api/v1/s3/multipart/get-uploaded-parts',
headers={'Authorization': 'Bearer YOUR_ACCESS_TOKEN'},
json={'key': key, 'uploadId': upload_id}
)
parts = response.json()['parts']
uploaded = {p['PartNumber'] for p in parts}
# Only upload missing parts
for i in range(1, total_parts + 1):
if i not in uploaded:
# Upload this part
pass
{
"parts": [
{
"PartNumber": 1,
"ETag": "\"22b1d5721320f9da081e4987f0e0ce65\"",
"Size": 5242880
},
{
"PartNumber": 2,
"ETag": "\"479df46a73824ca1a5e44efe64d3dbb7\"",
"Size": 1405792
}
],
"status": "success"
}
{
"parts": [],
"status": "success"
}
Multipart Uploads
Get Uploaded Parts
List already uploaded parts for resumable uploads
POST
/
s3
/
multipart
/
get-uploaded-parts
curl -X POST https://app.drime.cloud/api/v1/s3/multipart/get-uploaded-parts \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"key": "uploads/1e4cbca8.../1e4cbca8...",
"uploadId": "AFNhWKh6Cn6f..."
}'
// Check which parts are already uploaded
const response = await fetch('https://app.drime.cloud/api/v1/s3/multipart/get-uploaded-parts', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({ key, uploadId })
});
const { parts } = await response.json();
const uploadedPartNumbers = new Set(parts.map(p => p.PartNumber));
// Only upload missing parts
for (let i = 1; i <= totalParts; i++) {
if (!uploadedPartNumbers.has(i)) {
// Upload this part
}
}
import requests
response = requests.post(
'https://app.drime.cloud/api/v1/s3/multipart/get-uploaded-parts',
headers={'Authorization': 'Bearer YOUR_ACCESS_TOKEN'},
json={'key': key, 'uploadId': upload_id}
)
parts = response.json()['parts']
uploaded = {p['PartNumber'] for p in parts}
# Only upload missing parts
for i in range(1, total_parts + 1):
if i not in uploaded:
# Upload this part
pass
{
"parts": [
{
"PartNumber": 1,
"ETag": "\"22b1d5721320f9da081e4987f0e0ce65\"",
"Size": 5242880
},
{
"PartNumber": 2,
"ETag": "\"479df46a73824ca1a5e44efe64d3dbb7\"",
"Size": 1405792
}
],
"status": "success"
}
{
"parts": [],
"status": "success"
}
Overview
Lists parts that have already been uploaded for a multipart upload. Use this to resume interrupted uploads by skipping already-uploaded parts.Request Body
string
required
S3 key from
createMultipartUploadstring
required
Upload ID from
createMultipartUploadResponse
array
string
Request status (
success)curl -X POST https://app.drime.cloud/api/v1/s3/multipart/get-uploaded-parts \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"key": "uploads/1e4cbca8.../1e4cbca8...",
"uploadId": "AFNhWKh6Cn6f..."
}'
// Check which parts are already uploaded
const response = await fetch('https://app.drime.cloud/api/v1/s3/multipart/get-uploaded-parts', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({ key, uploadId })
});
const { parts } = await response.json();
const uploadedPartNumbers = new Set(parts.map(p => p.PartNumber));
// Only upload missing parts
for (let i = 1; i <= totalParts; i++) {
if (!uploadedPartNumbers.has(i)) {
// Upload this part
}
}
import requests
response = requests.post(
'https://app.drime.cloud/api/v1/s3/multipart/get-uploaded-parts',
headers={'Authorization': 'Bearer YOUR_ACCESS_TOKEN'},
json={'key': key, 'uploadId': upload_id}
)
parts = response.json()['parts']
uploaded = {p['PartNumber'] for p in parts}
# Only upload missing parts
for i in range(1, total_parts + 1):
if i not in uploaded:
# Upload this part
pass
{
"parts": [
{
"PartNumber": 1,
"ETag": "\"22b1d5721320f9da081e4987f0e0ce65\"",
"Size": 5242880
},
{
"PartNumber": 2,
"ETag": "\"479df46a73824ca1a5e44efe64d3dbb7\"",
"Size": 1405792
}
],
"status": "success"
}
{
"parts": [],
"status": "success"
}
Use this endpoint to implement resumable uploads. When a user reconnects, check which parts are already uploaded and continue from where they left off.
⌘I

