diff --git a/backend/scoutfs/scoutfs_compat.go b/backend/scoutfs/scoutfs_compat.go index 48fc9f1..fdd15c2 100644 --- a/backend/scoutfs/scoutfs_compat.go +++ b/backend/scoutfs/scoutfs_compat.go @@ -50,12 +50,13 @@ func New(rootdir string, opts ScoutfsOpts) (*ScoutFS, error) { } return &ScoutFS{ - Posix: p, - rootfd: f, - rootdir: rootdir, - meta: metastore, - chownuid: opts.ChownUID, - chowngid: opts.ChownGID, + Posix: p, + rootfd: f, + rootdir: rootdir, + meta: metastore, + chownuid: opts.ChownUID, + chowngid: opts.ChownGID, + glaciermode: opts.GlacierMode, }, nil } diff --git a/s3api/controllers/base.go b/s3api/controllers/base.go index 1887eba..361b178 100644 --- a/s3api/controllers/base.go +++ b/s3api/controllers/base.go @@ -2548,23 +2548,8 @@ func (c S3ApiController) CreateActions(ctx *fiber.Ctx) error { key = key + "/" } - var restoreRequest s3.RestoreObjectInput if ctx.Request().URI().QueryArgs().Has("restore") { - err := xml.Unmarshal(ctx.Body(), &restoreRequest) - if err != nil { - if c.debug { - log.Printf("error unmarshalling restore object: %v", err) - } - return SendResponse(ctx, err, - &MetaOpts{ - Logger: c.logger, - MetricsMng: c.mm, - Action: metrics.ActionRestoreObject, - BucketOwner: parsedAcl.Owner, - }) - } - - err = auth.VerifyAccess(ctx.Context(), c.be, + err := auth.VerifyAccess(ctx.Context(), c.be, auth.AccessOptions{ Readonly: c.readonly, Acl: parsedAcl, @@ -2585,8 +2570,10 @@ func (c S3ApiController) CreateActions(ctx *fiber.Ctx) error { }) } - restoreRequest.Bucket = &bucket - restoreRequest.Key = &key + restoreRequest := s3.RestoreObjectInput{ + Bucket: &bucket, + Key: &key, + } err = c.be.RestoreObject(ctx.Context(), &restoreRequest) return SendResponse(ctx, err, diff --git a/s3api/controllers/base_test.go b/s3api/controllers/base_test.go index 5a40ef5..74a994f 100644 --- a/s3api/controllers/base_test.go +++ b/s3api/controllers/base_test.go @@ -1646,20 +1646,11 @@ func TestS3ApiController_CreateActions(t *testing.T) { { name: "Restore-object-success", app: app, - args: args{ - req: httptest.NewRequest(http.MethodPost, "/my-bucket/my-key?restore", strings.NewReader(`body`)), - }, - wantErr: false, - statusCode: 200, - }, - { - name: "Restore-object-error", - app: app, args: args{ req: httptest.NewRequest(http.MethodPost, "/my-bucket/my-key?restore", nil), }, wantErr: false, - statusCode: 500, + statusCode: 200, }, { name: "Select-object-content-invalid-body",