mirror of
https://github.com/versity/versitygw.git
synced 2026-09-18 22:14:24 +00:00
Merge branch 'main' of https://github.com/versity/versitygw into feat/issue-205-list-accs
This commit is contained in:
@@ -25,7 +25,6 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/aws/aws-sdk-go-v2/aws"
|
||||
"github.com/aws/aws-sdk-go-v2/service/s3"
|
||||
"github.com/aws/aws-sdk-go-v2/service/s3/types"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
@@ -222,6 +221,9 @@ func (c S3ApiController) ListActions(ctx *fiber.Ctx) error {
|
||||
marker := ctx.Query("marker")
|
||||
delimiter := ctx.Query("delimiter")
|
||||
maxkeysStr := ctx.Query("max-keys")
|
||||
keyMarker := ctx.Query("key-marker")
|
||||
maxUploadsStr := ctx.Query("max-uploads")
|
||||
uploadIdMarker := ctx.Query("upload-id-marker")
|
||||
access := ctx.Locals("access").(string)
|
||||
isRoot := ctx.Locals("isRoot").(bool)
|
||||
parsedAcl := ctx.Locals("parsedAcl").(auth.ACL)
|
||||
@@ -244,7 +246,22 @@ func (c S3ApiController) ListActions(ctx *fiber.Ctx) error {
|
||||
if err := auth.VerifyACL(parsedAcl, bucket, access, "READ", isRoot); err != nil {
|
||||
return SendXMLResponse(ctx, nil, err, &MetaOpts{Logger: c.logger, Action: "ListMultipartUploads", BucketOwner: parsedAcl.Owner})
|
||||
}
|
||||
res, err := c.be.ListMultipartUploads(ctx.Context(), &s3.ListMultipartUploadsInput{Bucket: aws.String(ctx.Params("bucket"))})
|
||||
maxUploads, err := utils.ParseUint(maxUploadsStr)
|
||||
if err != nil {
|
||||
return SendXMLResponse(ctx, nil, err, &MetaOpts{
|
||||
Logger: c.logger,
|
||||
Action: "ListMultipartUploads",
|
||||
BucketOwner: parsedAcl.Owner,
|
||||
})
|
||||
}
|
||||
res, err := c.be.ListMultipartUploads(ctx.Context(), &s3.ListMultipartUploadsInput{
|
||||
Bucket: &bucket,
|
||||
Delimiter: &delimiter,
|
||||
Prefix: &prefix,
|
||||
UploadIdMarker: &uploadIdMarker,
|
||||
MaxUploads: maxUploads,
|
||||
KeyMarker: &keyMarker,
|
||||
})
|
||||
return SendXMLResponse(ctx, res, err, &MetaOpts{Logger: c.logger, Action: "ListMultipartUploads", BucketOwner: parsedAcl.Owner})
|
||||
}
|
||||
|
||||
@@ -252,7 +269,7 @@ func (c S3ApiController) ListActions(ctx *fiber.Ctx) error {
|
||||
if err := auth.VerifyACL(parsedAcl, bucket, access, "READ", isRoot); err != nil {
|
||||
return SendXMLResponse(ctx, nil, err, &MetaOpts{Logger: c.logger, Action: "ListObjectsV2", BucketOwner: parsedAcl.Owner})
|
||||
}
|
||||
maxkeys, err := utils.ParseMaxKeys(maxkeysStr)
|
||||
maxkeys, err := utils.ParseUint(maxkeysStr)
|
||||
if err != nil {
|
||||
return SendXMLResponse(ctx, nil, err, &MetaOpts{
|
||||
Logger: c.logger,
|
||||
@@ -274,7 +291,7 @@ func (c S3ApiController) ListActions(ctx *fiber.Ctx) error {
|
||||
return SendXMLResponse(ctx, nil, err, &MetaOpts{Logger: c.logger, Action: "ListObjects", BucketOwner: parsedAcl.Owner})
|
||||
}
|
||||
|
||||
maxkeys, err := utils.ParseMaxKeys(maxkeysStr)
|
||||
maxkeys, err := utils.ParseUint(maxkeysStr)
|
||||
if err != nil {
|
||||
return SendXMLResponse(ctx, nil, err, &MetaOpts{
|
||||
Logger: c.logger,
|
||||
|
||||
@@ -80,7 +80,7 @@ func SetMetaHeaders(ctx *fiber.Ctx, meta map[string]string) {
|
||||
}
|
||||
}
|
||||
|
||||
func ParseMaxKeys(str string) (int32, error) {
|
||||
func ParseUint(str string) (int32, error) {
|
||||
if str == "" {
|
||||
return -1, nil
|
||||
}
|
||||
|
||||
@@ -222,7 +222,7 @@ func TestIsValidBucketName(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseMaxKeys(t *testing.T) {
|
||||
func TestParseUint(t *testing.T) {
|
||||
type args struct {
|
||||
str string
|
||||
}
|
||||
@@ -233,7 +233,7 @@ func TestParseMaxKeys(t *testing.T) {
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "Parse-max-keys-empty-string",
|
||||
name: "Parse-uint-empty-string",
|
||||
args: args{
|
||||
str: "",
|
||||
},
|
||||
@@ -241,7 +241,7 @@ func TestParseMaxKeys(t *testing.T) {
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "Parse-max-keys-invalid-number-string",
|
||||
name: "Parse-uint-invalid-number-string",
|
||||
args: args{
|
||||
str: "bla",
|
||||
},
|
||||
@@ -249,7 +249,7 @@ func TestParseMaxKeys(t *testing.T) {
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "Parse-max-keys-invalid-negative-number",
|
||||
name: "Parse-uint-invalid-negative-number",
|
||||
args: args{
|
||||
str: "-5",
|
||||
},
|
||||
@@ -259,7 +259,7 @@ func TestParseMaxKeys(t *testing.T) {
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
got, err := ParseMaxKeys(tt.args.str)
|
||||
got, err := ParseUint(tt.args.str)
|
||||
if (err != nil) != tt.wantErr {
|
||||
t.Errorf("ParseMaxKeys() error = %v, wantErr %v", err, tt.wantErr)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user