Support bucket versioning (#9377)

- Implement a new xl.json 2.0.0 format to support,
  this moves the entire marshaling logic to POSIX
  layer, top layer always consumes a common FileInfo
  construct which simplifies the metadata reads.
- Implement list object versions
- Migrate to siphash from crchash for new deployments
  for object placements.

Fixes #2111
This commit is contained in:
Harshavardhana
2020-06-12 20:04:01 -07:00
committed by GitHub
parent 43d6e3ae06
commit 4915433bd2
203 changed files with 13833 additions and 6919 deletions

View File

@@ -41,6 +41,7 @@ const (
ObjectCreatedPutLegalHold
ObjectRemovedAll
ObjectRemovedDelete
ObjectRemovedDeleteMarkerCreated
)
// Expand - returns expanded values of abbreviated event type.
@@ -88,6 +89,8 @@ func (name Name) String() string {
return "s3:ObjectRemoved:*"
case ObjectRemovedDelete:
return "s3:ObjectRemoved:Delete"
case ObjectRemovedDeleteMarkerCreated:
return "s3:ObjectRemoved:DeleteMarkerCreated"
}
return ""
@@ -166,6 +169,8 @@ func ParseName(s string) (Name, error) {
return ObjectRemovedAll, nil
case "s3:ObjectRemoved:Delete":
return ObjectRemovedDelete, nil
case "s3:ObjectRemoved:DeleteMarkerCreated":
return ObjectRemovedDeleteMarkerCreated, nil
default:
return 0, &ErrInvalidEventName{s}
}