fix (s3): exit s3 list via IsTruncated flag

Signed-off-by: Liang Zheng <zhengliang0901@gmail.com>
This commit is contained in:
Liang Zheng 2023-03-24 07:53:38 +08:00 committed by GitHub
parent 3a9961d6fe
commit a57a4a7e15
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -3,6 +3,7 @@ package plg_backend_s3
import ( import (
"context" "context"
"fmt" "fmt"
"github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/credentials"
@ -12,12 +13,12 @@ import (
"github.com/aws/aws-sdk-go/service/s3" "github.com/aws/aws-sdk-go/service/s3"
"github.com/aws/aws-sdk-go/service/s3/s3manager" "github.com/aws/aws-sdk-go/service/s3/s3manager"
. "github.com/mickael-kerjean/filestash/server/common" . "github.com/mickael-kerjean/filestash/server/common"
"io" "io"
"net/url" "net/url"
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
"time"
) )
var S3Cache AppCache var S3Cache AppCache
@ -168,7 +169,6 @@ func (s S3Backend) Ls(path string) (files []os.FileInfo, err error) {
} }
client := s3.New(s.createSession(p.bucket)) client := s3.New(s.createSession(p.bucket))
startTime := time.Now()
err = client.ListObjectsV2PagesWithContext( err = client.ListObjectsV2PagesWithContext(
s.context, s.context,
&s3.ListObjectsV2Input{ &s3.ListObjectsV2Input{
@ -194,7 +194,7 @@ func (s S3Backend) Ls(path string) (files []os.FileInfo, err error) {
FType: "directory", FType: "directory",
}) })
} }
return time.Since(startTime) < 5*time.Second return aws.BoolValue(objs.IsTruncated)
}) })
return files, err return files, err
} }