Merge pull request #264 from versity/fix/issue-250-list_objects-marker-not-from-list

This commit is contained in:
Ben McClelland
2023-09-23 21:15:10 -07:00
committed by GitHub
3 changed files with 35 additions and 1 deletions
+4 -1
View File
@@ -108,8 +108,11 @@ func Walk(fileSystem fs.FS, prefix, delimiter, marker string, max int32, getObj
if !pastMarker {
if path == marker {
pastMarker = true
return nil
}
if path < marker {
return nil
}
return nil
}
// If object doesn't have prefix, don't include in results.
+1
View File
@@ -75,6 +75,7 @@ func TestListObjects(s *S3Conf) {
ListObjects_max_keys_0(s)
ListObjects_delimiter(s)
ListObjects_max_keys_none(s)
ListObjects_marker_not_from_obj_list(s)
}
func TestDeleteObject(s *S3Conf) {
+30
View File
@@ -1534,6 +1534,36 @@ func ListObjects_max_keys_none(s *S3Conf) {
})
}
func ListObjects_marker_not_from_obj_list(s *S3Conf) {
testName := "ListObjects_marker_not_from_obj_list"
actionHandler(s, testName, func(s3client *s3.Client, bucket string) error {
err := putObjects(s3client, []string{"foo", "bar", "baz", "qux", "hello", "xyz"}, bucket)
if err != nil {
return err
}
ctx, cancel := context.WithTimeout(context.Background(), shortTimeout)
out, err := s3client.ListObjects(ctx, &s3.ListObjectsInput{
Bucket: &bucket,
Marker: getPtr("ceil"),
})
cancel()
if err != nil {
return err
}
for _, el := range out.Contents {
fmt.Println(*el.Key)
}
if !compareObjects([]string{"foo", "qux", "hello", "xyz"}, out.Contents) {
return fmt.Errorf("expected output to be %v, instead got %v", []string{"foo", "qux", "hello", "xyz"}, out.Contents)
}
return nil
})
}
func DeleteObject_non_existing_object(s *S3Conf) {
testName := "DeleteObject_non_existing_object"
actionHandler(s, testName, func(s3client *s3.Client, bucket string) error {