Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new feature: List deleted objects that haven't been permanently removed #5138

Open
1 task done
meteorgan opened this issue Sep 23, 2024 · 3 comments
Open
1 task done
Labels
enhancement New feature or request

Comments

@meteorgan
Copy link
Contributor

meteorgan commented Sep 23, 2024

Feature Description

When performing a List request, list all object versions, including the deleted ones.

Problem and Solution

Add a deleted parameter to the List operation, when set to true, return all active objects along with deleted objects

Additional Context

In S3, when versioning is enabled, a simple DELETE cannot permanently remove an object. We can still retrieve the object using the version parameter. Therefore, it's useful if a List request can return all object versions.

Are you willing to contribute to the development of this feature?

  • Yes, I am willing to contribute to the development of this feature.
@meteorgan meteorgan added the enhancement New feature or request label Sep 23, 2024
@meteorgan
Copy link
Contributor Author

There is a problem in #5106. when performing a simple DELETE in S3, a delete marker is inserted as the current version. In the response from ListObjectVersions, the delete markers are placed in DeleteMarker container, while other versions of the object are in the Version container. so currently, the List_with(path).version(true) will return all object versions excluding delete marker.

@Xuanwo
Copy link
Member

Xuanwo commented Sep 23, 2024

Hi, I believe listing deleted objects is an orthogonal feature compared to listing versioned objects. Some services that don't enable versioning can still have features like "soft delete," such as Azure Blob Soft Delete.

So all the following cases are possible:

  • List active files: list_with(path)
  • List active files along with non-current files: list_with(path).version(true)
  • List active files along with deleted files: list_with(path).deleted(true)
  • List all files (active, non-current, deleted): list_with(path).version(true).deleted(true).

@meteorgan
Copy link
Contributor Author

Hi, I believe listing deleted objects is an orthogonal feature compared to listing versioned objects. Some services that don't enable versioning can still have features like "soft delete," such as Azure Blob Soft Delete.

So all the following cases are possible:

  • List active files: list_with(path)
  • List active files along with non-current files: list_with(path).version(true)
  • List active files along with deleted files: list_with(path).deleted(true)
  • List all files (active, non-current, deleted): list_with(path).version(true).deleted(true).

Understood. I'll revise this issue accordingly.

@meteorgan meteorgan changed the title new feature: List deleted objects when versioning is enabled new feature: List deleted objects that haven't been permanently removed Sep 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants