aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/filer_multipart_test.go
diff options
context:
space:
mode:
authorChris Lu <chrislusf@users.noreply.github.com>2025-12-14 11:18:23 -0800
committerGitHub <noreply@github.com>2025-12-14 11:18:23 -0800
commita77674ead3c5f1f9bd21a46f6f90019f178c6a70 (patch)
tree5e99297ace743826b6936d011c32ffa256d95635 /weed/s3api/filer_multipart_test.go
parenteb860752e6c0a86131e39d648f0a64364408ab93 (diff)
downloadseaweedfs-a77674ead3c5f1f9bd21a46f6f90019f178c6a70.tar.xz
seaweedfs-a77674ead3c5f1f9bd21a46f6f90019f178c6a70.zip
fix: use path instead of filepath for S3 object paths on Windows (#7739)
fix: use path instead of filepath for S3 object paths on Windows (#7733)
Diffstat (limited to 'weed/s3api/filer_multipart_test.go')
-rw-r--r--weed/s3api/filer_multipart_test.go62
1 files changed, 60 insertions, 2 deletions
diff --git a/weed/s3api/filer_multipart_test.go b/weed/s3api/filer_multipart_test.go
index 7f75a40de..bf4fa3ca2 100644
--- a/weed/s3api/filer_multipart_test.go
+++ b/weed/s3api/filer_multipart_test.go
@@ -1,12 +1,13 @@
package s3api
import (
+ "testing"
+ "time"
+
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/s3"
"github.com/seaweedfs/seaweedfs/weed/s3api/s3err"
"github.com/stretchr/testify/assert"
- "testing"
- "time"
)
func TestInitiateMultipartUploadResult(t *testing.T) {
@@ -74,3 +75,60 @@ func Test_parsePartNumber(t *testing.T) {
})
}
}
+
+func TestGetEntryNameAndDir(t *testing.T) {
+ s3a := &S3ApiServer{
+ option: &S3ApiServerOption{
+ BucketsPath: "/buckets",
+ },
+ }
+
+ tests := []struct {
+ name string
+ bucket string
+ key string
+ expectedName string
+ expectedDirEnd string // We check the suffix since dir includes BucketsPath
+ }{
+ {
+ name: "simple file at root",
+ bucket: "test-bucket",
+ key: "/file.txt",
+ expectedName: "file.txt",
+ expectedDirEnd: "/buckets/test-bucket",
+ },
+ {
+ name: "file in subdirectory",
+ bucket: "test-bucket",
+ key: "/folder/file.txt",
+ expectedName: "file.txt",
+ expectedDirEnd: "/buckets/test-bucket/folder",
+ },
+ {
+ name: "file in nested subdirectory",
+ bucket: "test-bucket",
+ key: "/folder/subfolder/file.txt",
+ expectedName: "file.txt",
+ expectedDirEnd: "/buckets/test-bucket/folder/subfolder",
+ },
+ {
+ name: "key without leading slash",
+ bucket: "test-bucket",
+ key: "folder/file.txt",
+ expectedName: "file.txt",
+ expectedDirEnd: "/buckets/test-bucket/folder",
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ input := &s3.CompleteMultipartUploadInput{
+ Bucket: aws.String(tt.bucket),
+ Key: aws.String(tt.key),
+ }
+ entryName, dirName := s3a.getEntryNameAndDir(input)
+ assert.Equal(t, tt.expectedName, entryName, "entry name mismatch")
+ assert.Equal(t, tt.expectedDirEnd, dirName, "directory mismatch")
+ })
+ }
+}