CarpoSDK docs
Storage

Recover object versions

Browse retained object copies and restore or permanently delete them.

Carpo can retain copies of an object when it is overwritten or deleted. These recovery records are separate from native R2 object versioning. They use storage and object quota while retained, and expire according to the bucket recovery setting.

const versions = await storage.listVersions('avatars/user-42.png', { limit: 50 })
const trash = await storage.listTrash({ limit: 50 })

Both listings use opaque cursors. Pass a returned cursor back unchanged to continue through older records.

Restore a prior overwrite with restoreVersion(versionId). To restore a deleted object from trash, set fromTrash: true:

const restored = await storage.restoreVersion(trash.items[0].id, {
  fromTrash: true,
  overwrite: false,
})

overwrite defaults to false, so a restore does not replace an existing object unless you ask it to. A restored recovery copy may be consumed by the restore operation. Use deleteVersion(versionId) to permanently delete a retained overwrite copy.

Access remains subject to the bucket's configured Storage policy. The SDK does not expose the bucket's recovery retention setting.