When you delete an object from a versioning-enabled bucket, the object is not permanently deleted. Instead, it is marked as deleted. You can restore an object that is marked as deleted.
About delete markers
If the current version of an object is a delete marker, a GET request returns a 404 error.
Only RAM users who have the oss:DeleteObjectVersion permission can permanently delete a delete marker.
Remove delete markers
To permanently delete a delete marker, specify its version ID. After the delete marker is removed, the object becomes accessible again and the most recent historical version becomes the current version.
You can use the following OSS SDKs for different programming languages to delete a specific version of an object and the delete marker of the object: Java SDK, Python SDK, PHP SDK, Node.js SDK, .NET SDK, Go SDK, and C++ SDK.