diff options
| author | Chris Lu <chrislusf@users.noreply.github.com> | 2025-12-14 11:18:23 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-14 11:18:23 -0800 |
| commit | a77674ead3c5f1f9bd21a46f6f90019f178c6a70 (patch) | |
| tree | 5e99297ace743826b6936d011c32ffa256d95635 /weed/s3api/filer_multipart_test.go | |
| parent | eb860752e6c0a86131e39d648f0a64364408ab93 (diff) | |
| download | seaweedfs-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.go | 62 |
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") + }) + } +} |
