1
0
mirror of https://github.com/minio/minio.git synced 2025-03-22 05:24:15 -04:00

10 Commits

Author SHA1 Message Date
Krishnan Parthasarathi
7926401cbd
ilm: Handle DeleteAllVersions action differently for DEL markers ()
i.e., this rule element doesn't apply to DEL markers.

This is a breaking change to how ExpiredObejctDeleteAllVersions
functions today. This is necessary to avoid the following highly probable
footgun scenario in the future.

Scenario:
The user uses tags-based filtering to select an object's time to live(TTL). 
The application sometimes deletes objects, too, making its latest
version a DEL marker. The previous implementation skipped tag-based filters
if the newest version was DEL marker, voiding the tag-based TTL. The user is
surprised to find objects that have expired sooner than expected.

* Add DelMarkerExpiration action

This ILM action removes all versions of an object if its
the latest version is a DEL marker.

```xml
<DelMarkerObjectExpiration>
    <Days> 10 </Days>
</DelMarkerObjectExpiration>
```

1. Applies only to objects whose,
  • The latest version is a DEL marker.
  • satisfies the number of days criteria
2. Deletes all versions of this object
3. Associated rule can't have tag-based filtering

Includes,
- New bucket event type for deletion due to DelMarkerExpiration
2024-04-30 18:11:10 -07:00
Anis Eleuch
c6f8dc431e
Add a warning when the total size of an object versions exceeds 1 TiB () 2024-04-08 10:45:03 -07:00
Krishnan Parthasarathi
da81c6cc27
Encode dir obj names before expiration ()
Object names of directory objects qualified for ExpiredObjectAllVersions
must be encoded appropriately before calling on deletePrefix on their
erasure set.

e.g., a directory object and regular objects with overlapping prefixes
could lead to the expiration of regular objects, which is not the 
intention of ILM. 

```
bucket/dir/ ---> directory object
bucket/dir/obj-1
```

When `bucket/dir/` qualifies for expiration, the current implementation would
remove regular objects under the prefix `bucket/dir/`, in this case,
`bucket/dir/obj-1`.
2024-03-21 10:21:35 -07:00
Praveen raj Mani
ac8e9ce04f
Send a bucket notification event on DeleteObject() for non-existing object ()
Send a bucket notification event on DeleteObject for non-existing objects
2024-02-13 07:34:17 -08:00
Sveinn
9b8ba97f9f
feat: add support for GetObjectAttributes API () 2024-01-05 10:43:06 -08:00
Klaus Post
fd6622458b
Add detailed scanner trace output and notifications () 2023-02-21 09:33:33 -08:00
Harshavardhana
bad229e16e
fix: support event name s3:Restore:* () 2022-12-14 05:12:07 -08:00
Klaus Post
71954faa3a
mark pubsub type safe via generics () 2022-10-28 10:55:42 -07:00
Klaus Post
ac055b09e9
Add detailed scanner metrics () 2022-07-05 14:45:49 -07:00
Harshavardhana
1f262daf6f
rename all remaining packages to internal/ ()
This is to ensure that there are no projects
that try to import `minio/minio/pkg` into
their own repo. Any such common packages should
go to `https://github.com/minio/pkg`
2021-06-01 14:59:40 -07:00