feat: add support for GetObjectAttributes API (#18732)

This commit is contained in:
Sveinn
2024-01-05 18:43:06 +00:00
committed by GitHub
parent 7705605b5a
commit 9b8ba97f9f
13 changed files with 432 additions and 7 deletions

View File

@@ -36,6 +36,7 @@ const (
ObjectAccessedGetRetention
ObjectAccessedGetLegalHold
ObjectAccessedHead
ObjectAccessedAttributes
ObjectCreatedCompleteMultipartUpload
ObjectCreatedCopy
ObjectCreatedPost
@@ -84,7 +85,7 @@ func (name Name) Expand() []Name {
case ObjectAccessedAll:
return []Name{
ObjectAccessedGet, ObjectAccessedHead,
ObjectAccessedGetRetention, ObjectAccessedGetLegalHold,
ObjectAccessedGetRetention, ObjectAccessedGetLegalHold, ObjectAccessedAttributes,
}
case ObjectCreatedAll:
return []Name{
@@ -162,6 +163,8 @@ func (name Name) String() string {
return "s3:ObjectAccessed:GetLegalHold"
case ObjectAccessedHead:
return "s3:ObjectAccessed:Head"
case ObjectAccessedAttributes:
return "s3:ObjectAccessed:Attributes"
case ObjectCreatedAll:
return "s3:ObjectCreated:*"
case ObjectCreatedCompleteMultipartUpload:
@@ -278,6 +281,8 @@ func ParseName(s string) (Name, error) {
return ObjectAccessedGetLegalHold, nil
case "s3:ObjectAccessed:Head":
return ObjectAccessedHead, nil
case "s3:ObjectAccessed:Attributes":
return ObjectAccessedAttributes, nil
case "s3:ObjectCreated:*":
return ObjectCreatedAll, nil
case "s3:ObjectCreated:CompleteMultipartUpload":

View File

@@ -31,7 +31,7 @@ func TestNameExpand(t *testing.T) {
}{
{BucketCreated, []Name{BucketCreated}},
{BucketRemoved, []Name{BucketRemoved}},
{ObjectAccessedAll, []Name{ObjectAccessedGet, ObjectAccessedHead, ObjectAccessedGetRetention, ObjectAccessedGetLegalHold}},
{ObjectAccessedAll, []Name{ObjectAccessedGet, ObjectAccessedHead, ObjectAccessedGetRetention, ObjectAccessedGetLegalHold, ObjectAccessedAttributes}},
{ObjectCreatedAll, []Name{
ObjectCreatedCompleteMultipartUpload, ObjectCreatedCopy, ObjectCreatedPost, ObjectCreatedPut,
ObjectCreatedPutRetention, ObjectCreatedPutLegalHold, ObjectCreatedPutTagging, ObjectCreatedDeleteTagging,

View File

@@ -154,12 +154,12 @@ func TestRulesMapMatch(t *testing.T) {
func TestNewRulesMap(t *testing.T) {
rulesMapCase1 := make(RulesMap)
rulesMapCase1.add([]Name{ObjectAccessedGet, ObjectAccessedHead, ObjectAccessedGetRetention, ObjectAccessedGetLegalHold},
rulesMapCase1.add([]Name{ObjectAccessedGet, ObjectAccessedHead, ObjectAccessedGetRetention, ObjectAccessedGetLegalHold, ObjectAccessedAttributes},
"*", TargetID{"1", "webhook"})
rulesMapCase2 := make(RulesMap)
rulesMapCase2.add([]Name{
ObjectAccessedGet, ObjectAccessedHead,
ObjectAccessedGet, ObjectAccessedHead, ObjectAccessedAttributes,
ObjectCreatedPut, ObjectAccessedGetRetention, ObjectAccessedGetLegalHold,
}, "*", TargetID{"1", "webhook"})