From 70f5e0fac9c64d41518eba04695e528636ca7dd5 Mon Sep 17 00:00:00 2001 From: jonaustin09 Date: Wed, 24 May 2023 15:51:57 +0400 Subject: [PATCH] feat: Removed etag from GetObject function --- backend/backend.go | 4 ++-- backend/backend_moq_test.go | 14 ++++---------- backend/posix/posix.go | 2 +- s3api/controllers/backend_moq_test.go | 14 ++++---------- s3api/controllers/base.go | 2 +- s3api/controllers/base_test.go | 2 +- 6 files changed, 13 insertions(+), 25 deletions(-) diff --git a/backend/backend.go b/backend/backend.go index 351be84..5405d8b 100644 --- a/backend/backend.go +++ b/backend/backend.go @@ -32,7 +32,7 @@ type Backend interface { PutObject(*s3.PutObjectInput) (string, error) HeadObject(bucket, object string, etag string) (*s3.HeadObjectOutput, error) - GetObject(bucket, object string, startOffset, length int64, writer io.Writer, etag string) (*s3.GetObjectOutput, error) + GetObject(bucket, object string, startOffset, length int64, writer io.Writer) (*s3.GetObjectOutput, error) GetObjectAcl(bucket, object string) (*s3.GetObjectAclOutput, error) GetObjectAttributes(bucket, object string, attributes []string) (*s3.GetObjectAttributesOutput, error) CopyObject(srcBucket, srcObject, DstBucket, dstObject string) (*s3.CopyObjectOutput, error) @@ -129,7 +129,7 @@ func (BackendUnsupported) DeleteObject(bucket, object string) error { func (BackendUnsupported) DeleteObjects(bucket string, objects *s3.DeleteObjectsInput) error { return s3err.GetAPIError(s3err.ErrNotImplemented) } -func (BackendUnsupported) GetObject(bucket, object string, startOffset, length int64, writer io.Writer, etag string) (*s3.GetObjectOutput, error) { +func (BackendUnsupported) GetObject(bucket, object string, startOffset, length int64, writer io.Writer) (*s3.GetObjectOutput, error) { return nil, s3err.GetAPIError(s3err.ErrNotImplemented) } func (BackendUnsupported) HeadObject(bucket, object string, etag string) (*s3.HeadObjectOutput, error) { diff --git a/backend/backend_moq_test.go b/backend/backend_moq_test.go index 9ac9246..89b8fd9 100644 --- a/backend/backend_moq_test.go +++ b/backend/backend_moq_test.go @@ -50,7 +50,7 @@ var _ Backend = &BackendMock{} // GetIAMConfigFunc: func() ([]byte, error) { // panic("mock out the GetIAMConfig method") // }, -// GetObjectFunc: func(bucket string, object string, startOffset int64, length int64, writer io.Writer, etag string) (*s3.GetObjectOutput, error) { +// GetObjectFunc: func(bucket string, object string, startOffset int64, length int64, writer io.Writer) (*s3.GetObjectOutput, error) { // panic("mock out the GetObject method") // }, // GetObjectAclFunc: func(bucket string, object string) (*s3.GetObjectAclOutput, error) { @@ -160,7 +160,7 @@ type BackendMock struct { GetIAMConfigFunc func() ([]byte, error) // GetObjectFunc mocks the GetObject method. - GetObjectFunc func(bucket string, object string, startOffset int64, length int64, writer io.Writer, etag string) (*s3.GetObjectOutput, error) + GetObjectFunc func(bucket string, object string, startOffset int64, length int64, writer io.Writer) (*s3.GetObjectOutput, error) // GetObjectAclFunc mocks the GetObjectAcl method. GetObjectAclFunc func(bucket string, object string) (*s3.GetObjectAclOutput, error) @@ -319,8 +319,6 @@ type BackendMock struct { Length int64 // Writer is the writer argument value. Writer io.Writer - // Etag is the etag argument value. - Etag string } // GetObjectAcl holds details about calls to the GetObjectAcl method. GetObjectAcl []struct { @@ -896,7 +894,7 @@ func (mock *BackendMock) GetIAMConfigCalls() []struct { } // GetObject calls GetObjectFunc. -func (mock *BackendMock) GetObject(bucket string, object string, startOffset int64, length int64, writer io.Writer, etag string) (*s3.GetObjectOutput, error) { +func (mock *BackendMock) GetObject(bucket string, object string, startOffset int64, length int64, writer io.Writer) (*s3.GetObjectOutput, error) { if mock.GetObjectFunc == nil { panic("BackendMock.GetObjectFunc: method is nil but Backend.GetObject was just called") } @@ -906,19 +904,17 @@ func (mock *BackendMock) GetObject(bucket string, object string, startOffset int StartOffset int64 Length int64 Writer io.Writer - Etag string }{ Bucket: bucket, Object: object, StartOffset: startOffset, Length: length, Writer: writer, - Etag: etag, } mock.lockGetObject.Lock() mock.calls.GetObject = append(mock.calls.GetObject, callInfo) mock.lockGetObject.Unlock() - return mock.GetObjectFunc(bucket, object, startOffset, length, writer, etag) + return mock.GetObjectFunc(bucket, object, startOffset, length, writer) } // GetObjectCalls gets all the calls that were made to GetObject. @@ -931,7 +927,6 @@ func (mock *BackendMock) GetObjectCalls() []struct { StartOffset int64 Length int64 Writer io.Writer - Etag string } { var calls []struct { Bucket string @@ -939,7 +934,6 @@ func (mock *BackendMock) GetObjectCalls() []struct { StartOffset int64 Length int64 Writer io.Writer - Etag string } mock.lockGetObject.RLock() calls = mock.calls.GetObject diff --git a/backend/posix/posix.go b/backend/posix/posix.go index a179887..3b9a98a 100644 --- a/backend/posix/posix.go +++ b/backend/posix/posix.go @@ -822,7 +822,7 @@ func (p *Posix) DeleteObjects(bucket string, objects *s3.DeleteObjectsInput) err return nil } -func (p *Posix) GetObject(bucket, object string, startOffset, length int64, writer io.Writer, etag string) (*s3.GetObjectOutput, error) { +func (p *Posix) GetObject(bucket, object string, startOffset, length int64, writer io.Writer) (*s3.GetObjectOutput, error) { _, err := os.Stat(bucket) if err != nil && os.IsNotExist(err) { return nil, s3err.GetAPIError(s3err.ErrNoSuchBucket) diff --git a/s3api/controllers/backend_moq_test.go b/s3api/controllers/backend_moq_test.go index edbbd3f..90303ba 100644 --- a/s3api/controllers/backend_moq_test.go +++ b/s3api/controllers/backend_moq_test.go @@ -51,7 +51,7 @@ var _ backend.Backend = &BackendMock{} // GetIAMConfigFunc: func() ([]byte, error) { // panic("mock out the GetIAMConfig method") // }, -// GetObjectFunc: func(bucket string, object string, startOffset int64, length int64, writer io.Writer, etag string) (*s3.GetObjectOutput, error) { +// GetObjectFunc: func(bucket string, object string, startOffset int64, length int64, writer io.Writer) (*s3.GetObjectOutput, error) { // panic("mock out the GetObject method") // }, // GetObjectAclFunc: func(bucket string, object string) (*s3.GetObjectAclOutput, error) { @@ -161,7 +161,7 @@ type BackendMock struct { GetIAMConfigFunc func() ([]byte, error) // GetObjectFunc mocks the GetObject method. - GetObjectFunc func(bucket string, object string, startOffset int64, length int64, writer io.Writer, etag string) (*s3.GetObjectOutput, error) + GetObjectFunc func(bucket string, object string, startOffset int64, length int64, writer io.Writer) (*s3.GetObjectOutput, error) // GetObjectAclFunc mocks the GetObjectAcl method. GetObjectAclFunc func(bucket string, object string) (*s3.GetObjectAclOutput, error) @@ -320,8 +320,6 @@ type BackendMock struct { Length int64 // Writer is the writer argument value. Writer io.Writer - // Etag is the etag argument value. - Etag string } // GetObjectAcl holds details about calls to the GetObjectAcl method. GetObjectAcl []struct { @@ -897,7 +895,7 @@ func (mock *BackendMock) GetIAMConfigCalls() []struct { } // GetObject calls GetObjectFunc. -func (mock *BackendMock) GetObject(bucket string, object string, startOffset int64, length int64, writer io.Writer, etag string) (*s3.GetObjectOutput, error) { +func (mock *BackendMock) GetObject(bucket string, object string, startOffset int64, length int64, writer io.Writer) (*s3.GetObjectOutput, error) { if mock.GetObjectFunc == nil { panic("BackendMock.GetObjectFunc: method is nil but Backend.GetObject was just called") } @@ -907,19 +905,17 @@ func (mock *BackendMock) GetObject(bucket string, object string, startOffset int StartOffset int64 Length int64 Writer io.Writer - Etag string }{ Bucket: bucket, Object: object, StartOffset: startOffset, Length: length, Writer: writer, - Etag: etag, } mock.lockGetObject.Lock() mock.calls.GetObject = append(mock.calls.GetObject, callInfo) mock.lockGetObject.Unlock() - return mock.GetObjectFunc(bucket, object, startOffset, length, writer, etag) + return mock.GetObjectFunc(bucket, object, startOffset, length, writer) } // GetObjectCalls gets all the calls that were made to GetObject. @@ -932,7 +928,6 @@ func (mock *BackendMock) GetObjectCalls() []struct { StartOffset int64 Length int64 Writer io.Writer - Etag string } { var calls []struct { Bucket string @@ -940,7 +935,6 @@ func (mock *BackendMock) GetObjectCalls() []struct { StartOffset int64 Length int64 Writer io.Writer - Etag string } mock.lockGetObject.RLock() calls = mock.calls.GetObject diff --git a/s3api/controllers/base.go b/s3api/controllers/base.go index 1201e9d..309be78 100644 --- a/s3api/controllers/base.go +++ b/s3api/controllers/base.go @@ -82,7 +82,7 @@ func (c S3ApiController) GetActions(ctx *fiber.Ctx) error { return errors.New("wrong api call") } - res, err := c.be.GetObject(bucket, key, int64(startOffset), int64(length), ctx.Response().BodyWriter(), "") + res, err := c.be.GetObject(bucket, key, int64(startOffset), int64(length), ctx.Response().BodyWriter()) return responce(ctx, res, err) } diff --git a/s3api/controllers/base_test.go b/s3api/controllers/base_test.go index d4a37ae..6b106b9 100644 --- a/s3api/controllers/base_test.go +++ b/s3api/controllers/base_test.go @@ -120,7 +120,7 @@ func TestS3ApiController_GetActions(t *testing.T) { GetObjectAttributesFunc: func(bucket, object string, attributes []string) (*s3.GetObjectAttributesOutput, error) { return &s3.GetObjectAttributesOutput{}, nil }, - GetObjectFunc: func(bucket, object string, startOffset, length int64, writer io.Writer, etag string) (*s3.GetObjectOutput, error) { + GetObjectFunc: func(bucket, object string, startOffset, length int64, writer io.Writer) (*s3.GetObjectOutput, error) { return &s3.GetObjectOutput{Metadata: nil}, nil }, }}