# Directory uploads stream a tar archive through a resumable volume upload session.
tar -czf datasets.tar.gz ./datasets
curl -X POST "${NULLSPACE_API_URL}/v1/volumes/vol_123/uploads" \
-H "Authorization: Bearer ${NULLSPACE_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"kind": "directory_tar", "source_kind": "directory_archive", "target_path": "/datasets", "content_length": '"$(wc -c < datasets.tar.gz)"', "conflict": "merge", "archive_format": "tar", "checksum_algorithm": "sha256"}'
curl -X PUT "${NULLSPACE_API_URL}/v1/volumes/vol_123/uploads/upload_123/parts/0" \
-H "Authorization: Bearer ${NULLSPACE_API_KEY}" \
-H "Content-Type: application/octet-stream" \
--data-binary @datasets.tar.gz
curl -X POST "${NULLSPACE_API_URL}/v1/volumes/vol_123/uploads/upload_123/complete" \
-H "Authorization: Bearer ${NULLSPACE_API_KEY}"