Skip to content

Commit

Permalink
seek-1
Browse files Browse the repository at this point in the history
  • Loading branch information
nikolaydubina committed Feb 22, 2024
1 parent e656296 commit b01d1b9
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions aws_s3_reader_seeker_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,56 @@ func TestS3ReadSeeker(t *testing.T) {
t.Errorf("expected %d bytes, got %d", len(exp), len(got))
}
}

func TestS3ReadSeeker_Seek_Current(t *testing.T) {
mySession := session.Must(session.NewSession(
aws.NewConfig().WithRegion("ap-southeast-1"),
))
s3client := s3.New(mySession)

bucket := "nikolaydubina-blog-public"
key := "photos/2021-12-20-4.jpeg"

r := awss3reader.NewS3ReadSeeker(
s3client,
bucket,
key,
1<<10*100,
awss3reader.FixedChunkSizePolicy{Size: 1 << 10 * 100}, // 100 KB
)

var offset int64 = 1 << 10 * 100
r.Seek(offset, io.SeekCurrent)

got, err := io.ReadAll(r)
if err != nil {
t.Fatal(err)
}

downloader := s3manager.NewDownloader(mySession)
f, err := os.CreateTemp("", "s3reader")
if err != nil {
t.Fatal(err)
}
defer f.Close()

n, err := downloader.Download(f, &s3.GetObjectInput{
Bucket: aws.String(bucket),
Key: aws.String(key),
})
if err != nil {
t.Fatal(err)
}
exp, err := os.ReadFile(f.Name())
if err != nil {
t.Fatal(err)
}
if n != int64(len(exp)) {
t.Errorf("expected %d bytes, got %d", len(exp), n)
}

if !bytes.Equal(exp[offset:], got) {
os.WriteFile("got", got, 0644)
t.Errorf("expected %d bytes, got %d", len(exp), len(got))
}
}

0 comments on commit b01d1b9

Please sign in to comment.