Upstream versity/versitygw state of the touched files before 44dc2e71ec

This commit is contained in:
upstream committed 2026-10-10 11:46:12 +02:00
1 parent 86ff18f8c1
commit 485130eb9f
6 files changed
+78 -97

No files matched your search

-13
View File
@@ -21,9 +21,7 @@ import (
"github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/gofiber/fiber/v3"
"github.com/versity/versitygw/auth"
"github.com/versity/versitygw/debuglogger"
"github.com/versity/versitygw/s3api/utils"
"github.com/versity/versitygw/s3err"
"github.com/versity/versitygw/s3response"
)
@@ -633,17 +631,6 @@ func (c S3ApiController) ListObjects(ctx fiber.Ctx) (*Response, error) {
}, err
}
// start-after belongs to list-type=2 only; S3 rejects it here instead of
// ignoring it
if ctx.Request().URI().QueryArgs().Has("start-after") {
debuglogger.Logf("start-after is not supported in ListObjects V1")
return &Response{
MetaOpts: &MetaOptions{
BucketOwner: parsedAcl.Owner,
},
}, s3err.GetInvalidArgumentErr(s3err.InvalidArgStartAfter, "")
}
maxkeys, err := utils.ParseMaxLimiter(maxkeysStr, utils.LimiterTypeMaxKeys)
if err != nil {
return &Response{
-18
View File
@@ -1212,24 +1212,6 @@ func TestS3ApiController_ListObjects(t *testing.T) {
err: s3err.GetInvalidArgMaxLimiter(string(utils.LimiterTypeMaxKeys), "bla"),
},
},
{
name: "start-after is not supported",
input: testInput{
locals: defaultLocals,
beRes: listResult,
queries: map[string]string{
"start-after": "my-key",
},
},
output: testOutput{
response: &Response{
MetaOpts: &MetaOptions{
BucketOwner: "root",
},
},
err: s3err.GetInvalidArgumentErr(s3err.InvalidArgStartAfter, ""),
},
},
{
name: "backend returns error",
input: testInput{
+1 -11
View File
@@ -123,7 +123,7 @@ var invalidArgErrResponses = map[InvalidArgErrorCode]InvalidArgumentError{
ArgumentName: "x-amz-tagging",
},
InvalidArgAuthHeader: {
Description: "Authorization header is invalid -- one and only one ' ' (space) required.",
Description: "Authorization header is invalid -- one and only one ' ' (space) required",
ArgumentName: "Authorization",
},
InvalidArgAuthorizationType: {
@@ -401,13 +401,3 @@ func GetInvalidArgBucketRegion(value string) InvalidArgumentError {
Description: description,
}
}
// GetInvalidArgResponseOverride is returned for a response-* query parameter
// that isn't one of the response headers GetObject and HeadObject can override.
func GetInvalidArgResponseOverride(name, value string) InvalidArgumentError {
return InvalidArgumentError{
ArgumentName: name,
ArgumentValue: value,
Description: fmt.Sprintf("%s is not in the set of overridable response headers. Please refer to the S3 API documentation for a complete list of overridable response headers.", name),
}
}
-29
View File
@@ -17,8 +17,6 @@ package integration
import (
"context"
"fmt"
"net/http"
"time"
"github.com/aws/aws-sdk-go-v2/service/s3"
"github.com/aws/aws-sdk-go-v2/service/s3/types"
@@ -340,33 +338,6 @@ func ListObjects_marker_not_from_obj_list(s *S3Conf) error {
})
}
// ListObjects_start_after_not_supported sends start-after without
// list-type=2. S3 rejects it with InvalidArgument instead of ignoring it.
func ListObjects_start_after_not_supported(s *S3Conf) error {
testName := "ListObjects_start_after_not_supported"
return actionHandler(s, testName, func(s3client *s3.Client, bucket string) error {
_, err := putObjects(s3client, []string{"bar", "foo"}, bucket)
if err != nil {
return err
}
// ListObjectsInput has no StartAfter field, so send the query directly
req, err := createSignedReq(http.MethodGet, s.endpoint,
fmt.Sprintf("%v?start-after=bar", bucket),
s.awsID, s.awsSecret, "s3", s.awsRegion, "", nil, time.Now(), nil)
if err != nil {
return err
}
resp, err := s.httpClient.Do(req)
if err != nil {
return err
}
return checkHTTPResponseApiErr(resp, s3err.GetInvalidArgumentErr(s3err.InvalidArgStartAfter, ""))
})
}
func ListObjects_with_checksum(s *S3Conf) error {
testName := "ListObjects_with_checksum"
return actionHandler(s, testName, func(s3client *s3.Client, bucket string) error {
+71 -8
View File
@@ -149,6 +149,8 @@ func TestPutBucketTagging(ts *TestState) {
ts.Run(PutBucketTagging_invalid_tags)
ts.Run(PutBucketTagging_duplicate_keys)
ts.Run(PutBucketTagging_tag_count_limit)
ts.Run(PutBucketTagging_invalid_tag_error_fields)
ts.Run(PutBucketTagging_multibyte_tags)
ts.Run(PutBucketTagging_success)
ts.Run(PutBucketTagging_success_status)
}
@@ -179,6 +181,7 @@ func TestPutObject(ts *TestState) {
ts.Run(PutObject_plain_stores_aws_chunked_content_encoding)
ts.Run(PutObject_unsigned_payload_with_aws_chunked_content_encoding)
ts.Run(PutObject_tagging)
ts.Run(PutObject_tagging_invalid_argument_value)
ts.Run(PutObject_missing_object_lock_retention_config)
ts.Run(PutObject_with_object_lock)
ts.Run(PutObject_missing_bucket_lock)
@@ -187,6 +190,7 @@ func TestPutObject(ts *TestState) {
ts.Run(PutObject_object_lock_checksum_required)
ts.Run(PutObject_default_retention_checksum_required)
ts.Run(PutObject_past_retain_until_date)
ts.Run(PutObject_object_lock_headers_validation)
ts.Run(PutObject_invalid_retain_until_date)
ts.Run(PutObject_conditional_writes)
ts.Run(PutObject_should_combine_metadata)
@@ -246,7 +250,6 @@ func TestHeadObject(ts *TestState) {
ts.Run(HeadObject_overrides_success)
ts.Run(HeadObject_overrides_presign_success)
ts.Run(HeadObject_overrides_fail_public)
ts.Run(HeadObject_overrides_fail_invalid_header)
ts.Run(HeadObject_range_and_part_number)
ts.Run(HeadObject_mp_part_number_exceeds_parts_count)
ts.Run(HeadObject_mp_part_number_success)
@@ -295,7 +298,6 @@ func TestGetObject(ts *TestState) {
ts.Run(GetObject_overrides_success)
ts.Run(GetObject_overrides_presign_success)
ts.Run(GetObject_overrides_fail_public)
ts.Run(GetObject_overrides_fail_invalid_header)
ts.Run(GetObject_invalid_part_number)
ts.Run(GetObject_range_and_part_number)
ts.Run(GetObject_mp_part_number_exceeds_parts_count)
@@ -336,6 +338,7 @@ func TestListObjectsV2(ts *TestState) {
ts.Run(ListObjectsV2_both_start_after_and_continuation_token)
ts.Run(ListObjectsV2_start_after_not_in_list)
ts.Run(ListObjectsV2_start_after_empty_result)
ts.Run(ListObjectsV2_start_after_continuation_token)
ts.Run(ListObjectsV2_both_delimiter_and_prefix)
ts.Run(ListObjectsV2_single_dir_object_with_delim_and_prefix)
ts.Run(ListObjectsV2_truncated_common_prefixes)
@@ -437,6 +440,7 @@ func TestPutObjectTagging(ts *TestState) {
ts.Run(PutObjectTagging_duplicate_keys)
ts.Run(PutObjectTagging_tag_count_limit)
ts.Run(PutObjectTagging_invalid_tags)
ts.Run(PutObjectTagging_invalid_tag_error_fields)
ts.Run(PutObjectTagging_success)
ts.Run(PutObjectTagging_empty_version_id)
}
@@ -559,6 +563,7 @@ func TestListMultipartUploads(ts *TestState) {
ts.Run(ListMultipartUploads_keyMarker_not_from_list)
ts.Run(ListMultipartUploads_upload_id_marker_with_key_marker)
ts.Run(ListMultipartUploads_delimiter_truncated)
ts.Run(ListMultipartUploads_upload_id_marker_truncated)
ts.Run(ListMultipartUploads_prefix)
ts.Run(ListMultipartUploads_both_delimiter_and_prefix)
ts.Run(ListMultipartUploads_delimiter_no_matches)
@@ -587,6 +592,7 @@ func TestCompleteMultipartUpload(ts *TestState) {
ts.Run(CompleteMultipartUpload_default_content_type)
ts.Run(CompleteMultipartUpload_overwrite_resets_attributes)
ts.Run(CompleteMultipartUpload_invalid_ETag)
ts.Run(CompleteMultipartUpload_invalid_ETag_error_fields)
ts.Run(CompleteMultipartUpload_small_upload_size)
ts.Run(CompleteMultipartUpload_empty_parts)
ts.Run(CompleteMultipartUpload_missing_part_fields)
@@ -616,6 +622,15 @@ func TestCompleteMultipartUpload(ts *TestState) {
}
ts.Run(CompleteMultipartUpload_success)
ts.Run(CompleteMultipartUpload_already_completed)
ts.Run(CompleteMultipartUpload_upload_of_another_bucket)
ts.Run(CompleteMultipartUpload_upload_of_another_key)
ts.Run(CompleteMultipartUpload_non_existing_upload_existing_key)
ts.Run(CompleteMultipartUpload_aborted_upload_existing_key)
ts.Run(CompleteMultipartUpload_already_completed_overwritten)
// azure keeps no ETag of the completed parts to compare a retry with
if !ts.conf.azureTests {
ts.Run(CompleteMultipartUpload_already_completed_different_parts)
}
if !(ts.conf.azureTests || ts.conf.sidecarTests) {
ts.Run(CompleteMultipartUpload_racey_success)
ts.Run(CompleteMultipartUpload_racey_data_integrity)
@@ -805,6 +820,8 @@ func TestPutObjectLockConfiguration(ts *TestState) {
ts.Run(PutObjectLockConfiguration_invalid_mode)
ts.Run(PutObjectLockConfiguration_both_years_and_days)
ts.Run(PutObjectLockConfiguration_invalid_years_days)
ts.Run(PutObjectLockConfiguration_default_retention_missing_period)
ts.Run(PutObjectLockConfiguration_rule_without_default_retention)
ts.Run(PutObjectLockConfiguration_success)
}
@@ -840,6 +857,7 @@ func TestGetObjectRetention(ts *TestState) {
ts.Run(GetObjectRetention_disabled_lock)
ts.Run(GetObjectRetention_unset_config)
ts.Run(GetObjectRetention_success)
ts.Run(GetObjectRetention_retain_until_date_format)
ts.Run(GetObjectRetention_empty_version_id)
}
@@ -939,7 +957,6 @@ func TestSSECTransport(ts *TestState) {
}
func TestWORMProtection(ts *TestState) {
ts.Run(WORMProtection_bucket_object_lock_configuration_compliance_mode)
ts.Run(WORMProtection_bucket_object_lock_configuration_governance_mode)
ts.Run(WORMProtection_bucket_object_lock_governance_bypass_delete)
ts.Run(WORMProtection_bucket_object_lock_governance_bypass_delete_multiple)
@@ -958,6 +975,11 @@ func TestWORMProtection(ts *TestState) {
ts.Run(WORMProtection_object_lock_retention_governance_bypass_delete_mul)
ts.Run(WORMProtection_object_lock_legal_hold_locked)
ts.Run(WORMProtection_root_bypass_governance_retention_delete_object)
ts.Run(WORMProtection_default_retention_applies_to_new_objects)
ts.Run(WORMProtection_default_retention_survives_rule_change)
ts.Run(WORMProtection_default_retention_explicit_lock_settings)
ts.Run(WORMProtection_default_retention_set_at_create_multipart_upload)
ts.Run(WORMProtection_legal_hold_outlives_expired_retention)
}
func TestFullFlow(ts *TestState) {
@@ -1809,6 +1831,7 @@ func TestS3IAMAccessControl(ts *TestState) {
ts.Run(S3IAMAccessControl_identity_policy_bucket_vs_object_arn)
ts.Run(S3IAMAccessControl_post_object_identity_policy_resource_scoping)
ts.Run(S3IAMAccessControl_post_object_tagging_identity_policy)
ts.Run(S3IAMAccessControl_post_object_lock_identity_policy)
ts.Run(S3IAMAccessControl_identity_policy_not_action_and_not_resource)
ts.Run(S3IAMAccessControl_identity_policy_explicit_deny_wins)
ts.Run(S3IAMAccessControl_multiple_inline_policies_combine)
@@ -1989,6 +2012,10 @@ func TestAccessControl(ts *TestState) {
ts.Run(AccessControl_bucket_policy_condition_if_match_value)
ts.Run(AccessControl_bucket_policy_condition_if_match_delete_object)
ts.Run(AccessControl_bucket_policy_condition_if_match_versioned_delete)
ts.Run(AccessControl_owner_deny_only_policy_keeps_access)
ts.Run(AccessControl_owner_policy_lockout_protection)
ts.Run(AccessControl_acl_grant_with_bucket_policy)
ts.Run(AccessControl_acl_grant_excludes_bucket_configuration)
}
func TestPublicBuckets(ts *TestState) {
@@ -2015,6 +2042,7 @@ func TestPublicBuckets(ts *TestState) {
ts.Run(PublicBucket_put_object_default_retention)
ts.Run(PublicBucket_upload_part_object_lock)
ts.Run(PublicBucket_post_object_tagging)
ts.Run(PublicBucket_post_object_lock)
if ts.conf.versioningEnabled {
ts.Run(PublicBucket_object_version_actions)
ts.Run(PublicBucket_object_version_actions_public_acl)
@@ -2033,7 +2061,7 @@ func TestVersioning(ts *TestState) {
ts.Run(GetBucketVersioning_success)
ts.Run(GetBucketVersioning_non_owner_access_denied)
ts.Run(GetBucketVersioning_with_policy_access)
ts.Run(GetBucketVersioning_with_acl_access)
ts.Run(GetBucketVersioning_acl_grant_access_denied)
// DeleteBucket action
ts.Run(Versioning_DeleteBucket_not_empty)
// PutObject action
@@ -2136,6 +2164,7 @@ func TestVersioning(ts *TestState) {
ts.Run(Versioning_Multipart_Upload_suspended_overwrite_versioned_object)
ts.Run(Versioning_Multipart_Upload_overwrite_keeps_previous_version_metadata)
ts.Run(Versioning_Multipart_Upload_conditional_writes_over_delete_marker)
ts.Run(Versioning_Multipart_Upload_already_completed)
ts.Run(Versioning_UploadPartCopy_invalid_versionId)
ts.Run(Versioning_UploadPartCopy_encoded_versionid_separator_invalid_versionId)
ts.Run(Versioning_UploadPartCopy_non_existing_versionId)
@@ -2246,6 +2275,10 @@ func TestPostObject(ts *TestState) {
ts.Run(PostObject_invalid_tagging)
ts.Run(PostObject_success_with_tagging)
ts.Run(PostObject_success_double_dash_boundary)
ts.Run(PostObject_object_lock_success)
ts.Run(PostObject_object_lock_invalid_fields)
ts.Run(PostObject_object_lock_missing_bucket_config)
ts.Run(PostObject_object_lock_default_retention)
if !ts.conf.azureTests {
ts.Run(PostObject_invalid_checksum_value)
ts.Run(PostObject_invalid_checksum_algorithm)
@@ -2359,6 +2392,7 @@ func GetIntTests() IntTests {
"S3IAMAccessControl_identity_policy_bucket_vs_object_arn": S3IAMAccessControl_identity_policy_bucket_vs_object_arn,
"S3IAMAccessControl_post_object_identity_policy_resource_scoping": S3IAMAccessControl_post_object_identity_policy_resource_scoping,
"S3IAMAccessControl_post_object_tagging_identity_policy": S3IAMAccessControl_post_object_tagging_identity_policy,
"S3IAMAccessControl_post_object_lock_identity_policy": S3IAMAccessControl_post_object_lock_identity_policy,
"S3IAMAccessControl_identity_policy_not_action_and_not_resource": S3IAMAccessControl_identity_policy_not_action_and_not_resource,
"S3IAMAccessControl_identity_policy_explicit_deny_wins": S3IAMAccessControl_identity_policy_explicit_deny_wins,
"S3IAMAccessControl_multiple_inline_policies_combine": S3IAMAccessControl_multiple_inline_policies_combine,
@@ -2951,6 +2985,7 @@ func GetIntTests() IntTests {
"PutObject_default_retention_checksum_required": PutObject_default_retention_checksum_required,
"PutObject_past_retain_until_date": PutObject_past_retain_until_date,
"PutObject_invalid_retain_until_date": PutObject_invalid_retain_until_date,
"PutObject_object_lock_headers_validation": PutObject_object_lock_headers_validation,
"PutObject_conditional_writes": PutObject_conditional_writes,
"PutObject_should_combine_metadata": PutObject_should_combine_metadata,
"PutObject_md5": PutObject_md5,
@@ -3019,6 +3054,8 @@ func GetIntTests() IntTests {
"PutBucketTagging_invalid_tags": PutBucketTagging_invalid_tags,
"PutBucketTagging_duplicate_keys": PutBucketTagging_duplicate_keys,
"PutBucketTagging_tag_count_limit": PutBucketTagging_tag_count_limit,
"PutBucketTagging_invalid_tag_error_fields": PutBucketTagging_invalid_tag_error_fields,
"PutBucketTagging_multibyte_tags": PutBucketTagging_multibyte_tags,
"PutBucketTagging_success": PutBucketTagging_success,
"PutBucketTagging_success_status": PutBucketTagging_success_status,
"GetBucketTagging_non_existing_bucket": GetBucketTagging_non_existing_bucket,
@@ -3038,6 +3075,7 @@ func GetIntTests() IntTests {
"PutObject_plain_stores_aws_chunked_content_encoding": PutObject_plain_stores_aws_chunked_content_encoding,
"PutObject_unsigned_payload_with_aws_chunked_content_encoding": PutObject_unsigned_payload_with_aws_chunked_content_encoding,
"PutObject_tagging": PutObject_tagging,
"PutObject_tagging_invalid_argument_value": PutObject_tagging_invalid_argument_value,
"PutObject_success": PutObject_success,
"PutObject_default_content_type": PutObject_default_content_type,
"PutObject_overwrite_resets_attributes": PutObject_overwrite_resets_attributes,
@@ -3066,7 +3104,6 @@ func GetIntTests() IntTests {
"HeadObject_overrides_success": HeadObject_overrides_success,
"HeadObject_overrides_presign_success": HeadObject_overrides_presign_success,
"HeadObject_overrides_fail_public": HeadObject_overrides_fail_public,
"HeadObject_overrides_fail_invalid_header": HeadObject_overrides_fail_invalid_header,
"HeadObject_range_and_part_number": HeadObject_range_and_part_number,
"HeadObject_mp_part_number_exceeds_parts_count": HeadObject_mp_part_number_exceeds_parts_count,
"HeadObject_mp_part_number_success": HeadObject_mp_part_number_success,
@@ -3103,7 +3140,6 @@ func GetIntTests() IntTests {
"GetObject_overrides_success": GetObject_overrides_success,
"GetObject_overrides_presign_success": GetObject_overrides_presign_success,
"GetObject_overrides_fail_public": GetObject_overrides_fail_public,
"GetObject_overrides_fail_invalid_header": GetObject_overrides_fail_invalid_header,
"GetObject_invalid_part_number": GetObject_invalid_part_number,
"GetObject_range_and_part_number": GetObject_range_and_part_number,
"GetObject_mp_part_number_exceeds_parts_count": GetObject_mp_part_number_exceeds_parts_count,
@@ -3140,6 +3176,7 @@ func GetIntTests() IntTests {
"ListObjectsV2_both_start_after_and_continuation_token": ListObjectsV2_both_start_after_and_continuation_token,
"ListObjectsV2_start_after_not_in_list": ListObjectsV2_start_after_not_in_list,
"ListObjectsV2_start_after_empty_result": ListObjectsV2_start_after_empty_result,
"ListObjectsV2_start_after_continuation_token": ListObjectsV2_start_after_continuation_token,
"ListObjectsV2_both_delimiter_and_prefix": ListObjectsV2_both_delimiter_and_prefix,
"ListObjectsV2_single_dir_object_with_delim_and_prefix": ListObjectsV2_single_dir_object_with_delim_and_prefix,
"ListObjectsV2_truncated_common_prefixes": ListObjectsV2_truncated_common_prefixes,
@@ -3220,6 +3257,7 @@ func GetIntTests() IntTests {
"PutObjectTagging_duplicate_keys": PutObjectTagging_duplicate_keys,
"PutObjectTagging_tag_count_limit": PutObjectTagging_tag_count_limit,
"PutObjectTagging_invalid_tags": PutObjectTagging_invalid_tags,
"PutObjectTagging_invalid_tag_error_fields": PutObjectTagging_invalid_tag_error_fields,
"PutObjectTagging_success": PutObjectTagging_success,
"PutObjectTagging_empty_version_id": PutObjectTagging_empty_version_id,
"GetObjectTagging_non_existing_object": GetObjectTagging_non_existing_object,
@@ -3309,6 +3347,7 @@ func GetIntTests() IntTests {
"ListMultipartUploads_keyMarker_not_from_list": ListMultipartUploads_keyMarker_not_from_list,
"ListMultipartUploads_upload_id_marker_with_key_marker": ListMultipartUploads_upload_id_marker_with_key_marker,
"ListMultipartUploads_delimiter_truncated": ListMultipartUploads_delimiter_truncated,
"ListMultipartUploads_upload_id_marker_truncated": ListMultipartUploads_upload_id_marker_truncated,
"ListMultipartUploads_prefix": ListMultipartUploads_prefix,
"ListMultipartUploads_both_delimiter_and_prefix": ListMultipartUploads_both_delimiter_and_prefix,
"ListMultipartUploads_with_upload_id": ListMultipartUploads_with_upload_id,
@@ -3326,6 +3365,7 @@ func GetIntTests() IntTests {
"CompleteMultipartUpload_default_content_type": CompleteMultipartUpload_default_content_type,
"CompleteMultipartUpload_overwrite_resets_attributes": CompleteMultipartUpload_overwrite_resets_attributes,
"CompleteMultipartUpload_invalid_ETag": CompleteMultipartUpload_invalid_ETag,
"CompleteMultipartUpload_invalid_ETag_error_fields": CompleteMultipartUpload_invalid_ETag_error_fields,
"CompleteMultipartUpload_small_upload_size": CompleteMultipartUpload_small_upload_size,
"CompleteMultipartUpload_empty_parts": CompleteMultipartUpload_empty_parts,
"CompleteMultipartUpload_missing_part_fields": CompleteMultipartUpload_missing_part_fields,
@@ -3353,6 +3393,12 @@ func GetIntTests() IntTests {
"CompleteMultipartUpload_success": CompleteMultipartUpload_success,
"CompleteMultipartUpload_data_integrity_etag": CompleteMultipartUpload_data_integrity_etag,
"CompleteMultipartUpload_already_completed": CompleteMultipartUpload_already_completed,
"CompleteMultipartUpload_upload_of_another_bucket": CompleteMultipartUpload_upload_of_another_bucket,
"CompleteMultipartUpload_upload_of_another_key": CompleteMultipartUpload_upload_of_another_key,
"CompleteMultipartUpload_non_existing_upload_existing_key": CompleteMultipartUpload_non_existing_upload_existing_key,
"CompleteMultipartUpload_aborted_upload_existing_key": CompleteMultipartUpload_aborted_upload_existing_key,
"CompleteMultipartUpload_already_completed_different_parts": CompleteMultipartUpload_already_completed_different_parts,
"CompleteMultipartUpload_already_completed_overwritten": CompleteMultipartUpload_already_completed_overwritten,
"CompleteMultipartUpload_racey_success": CompleteMultipartUpload_racey_success,
"CompleteMultipartUpload_racey_data_integrity": CompleteMultipartUpload_racey_data_integrity,
"PutBucketAcl_non_existing_bucket": PutBucketAcl_non_existing_bucket,
@@ -3490,6 +3536,8 @@ func GetIntTests() IntTests {
"PutObjectLockConfiguration_invalid_mode": PutObjectLockConfiguration_invalid_mode,
"PutObjectLockConfiguration_both_years_and_days": PutObjectLockConfiguration_both_years_and_days,
"PutObjectLockConfiguration_invalid_years_days": PutObjectLockConfiguration_invalid_years_days,
"PutObjectLockConfiguration_default_retention_missing_period": PutObjectLockConfiguration_default_retention_missing_period,
"PutObjectLockConfiguration_rule_without_default_retention": PutObjectLockConfiguration_rule_without_default_retention,
"PutObjectLockConfiguration_success": PutObjectLockConfiguration_success,
"GetObjectLockConfiguration_non_existing_bucket": GetObjectLockConfiguration_non_existing_bucket,
"GetObjectLockConfiguration_unset_config": GetObjectLockConfiguration_unset_config,
@@ -3516,6 +3564,7 @@ func GetIntTests() IntTests {
"GetObjectRetention_disabled_lock": GetObjectRetention_disabled_lock,
"GetObjectRetention_unset_config": GetObjectRetention_unset_config,
"GetObjectRetention_success": GetObjectRetention_success,
"GetObjectRetention_retain_until_date_format": GetObjectRetention_retain_until_date_format,
"GetObjectRetention_empty_version_id": GetObjectRetention_empty_version_id,
"PutObjectLegalHold_non_existing_bucket": PutObjectLegalHold_non_existing_bucket,
"PutObjectLegalHold_non_existing_object": PutObjectLegalHold_non_existing_object,
@@ -3568,7 +3617,6 @@ func GetIntTests() IntTests {
"GetBucketAccelerateConfiguration_not_implemented": GetBucketAccelerateConfiguration_not_implemented,
"PutObjectAcl_not_implemented": PutObjectAcl_not_implemented,
"GetObjectAcl_not_implemented": GetObjectAcl_not_implemented,
"WORMProtection_bucket_object_lock_configuration_compliance_mode": WORMProtection_bucket_object_lock_configuration_compliance_mode,
"WORMProtection_bucket_object_lock_configuration_governance_mode": WORMProtection_bucket_object_lock_configuration_governance_mode,
"WORMProtection_bucket_object_lock_governance_bypass_delete": WORMProtection_bucket_object_lock_governance_bypass_delete,
"WORMProtection_bucket_object_lock_governance_bypass_delete_multiple": WORMProtection_bucket_object_lock_governance_bypass_delete_multiple,
@@ -3587,6 +3635,11 @@ func GetIntTests() IntTests {
"WORMProtection_object_lock_retention_governance_bypass_delete_mul": WORMProtection_object_lock_retention_governance_bypass_delete_mul,
"WORMProtection_object_lock_legal_hold_locked": WORMProtection_object_lock_legal_hold_locked,
"WORMProtection_root_bypass_governance_retention_delete_object": WORMProtection_root_bypass_governance_retention_delete_object,
"WORMProtection_default_retention_applies_to_new_objects": WORMProtection_default_retention_applies_to_new_objects,
"WORMProtection_default_retention_survives_rule_change": WORMProtection_default_retention_survives_rule_change,
"WORMProtection_default_retention_explicit_lock_settings": WORMProtection_default_retention_explicit_lock_settings,
"WORMProtection_default_retention_set_at_create_multipart_upload": WORMProtection_default_retention_set_at_create_multipart_upload,
"WORMProtection_legal_hold_outlives_expired_retention": WORMProtection_legal_hold_outlives_expired_retention,
"PutObject_overwrite_dir_obj": PutObject_overwrite_dir_obj,
"PutObject_overwrite_file_obj": PutObject_overwrite_file_obj,
"PutObject_overwrite_file_obj_with_nested_obj": PutObject_overwrite_file_obj_with_nested_obj,
@@ -3657,6 +3710,10 @@ func GetIntTests() IntTests {
"AccessControl_bucket_policy_condition_if_match_value": AccessControl_bucket_policy_condition_if_match_value,
"AccessControl_bucket_policy_condition_if_match_delete_object": AccessControl_bucket_policy_condition_if_match_delete_object,
"AccessControl_bucket_policy_condition_if_match_versioned_delete": AccessControl_bucket_policy_condition_if_match_versioned_delete,
"AccessControl_owner_deny_only_policy_keeps_access": AccessControl_owner_deny_only_policy_keeps_access,
"AccessControl_owner_policy_lockout_protection": AccessControl_owner_policy_lockout_protection,
"AccessControl_acl_grant_with_bucket_policy": AccessControl_acl_grant_with_bucket_policy,
"AccessControl_acl_grant_excludes_bucket_configuration": AccessControl_acl_grant_excludes_bucket_configuration,
"PublicBucket_default_private_bucket": PublicBucket_default_private_bucket,
"PublicBucket_public_bucket_policy": PublicBucket_public_bucket_policy,
"PublicBucket_public_object_policy": PublicBucket_public_object_policy,
@@ -3673,6 +3730,7 @@ func GetIntTests() IntTests {
"PublicBucket_put_object_default_retention": PublicBucket_put_object_default_retention,
"PublicBucket_upload_part_object_lock": PublicBucket_upload_part_object_lock,
"PublicBucket_post_object_tagging": PublicBucket_post_object_tagging,
"PublicBucket_post_object_lock": PublicBucket_post_object_lock,
"PublicBucket_object_version_actions": PublicBucket_object_version_actions,
"PublicBucket_object_version_actions_public_acl": PublicBucket_object_version_actions_public_acl,
"PutBucketVersioning_non_existing_bucket": PutBucketVersioning_non_existing_bucket,
@@ -3684,7 +3742,7 @@ func GetIntTests() IntTests {
"GetBucketVersioning_success": GetBucketVersioning_success,
"GetBucketVersioning_non_owner_access_denied": GetBucketVersioning_non_owner_access_denied,
"GetBucketVersioning_with_policy_access": GetBucketVersioning_with_policy_access,
"GetBucketVersioning_with_acl_access": GetBucketVersioning_with_acl_access,
"GetBucketVersioning_acl_grant_access_denied": GetBucketVersioning_acl_grant_access_denied,
"Versioning_DeleteBucket_not_empty": Versioning_DeleteBucket_not_empty,
"Versioning_PutObject_suspended_null_versionId_obj": Versioning_PutObject_suspended_null_versionId_obj,
"Versioning_PutObject_null_versionId_obj": Versioning_PutObject_null_versionId_obj,
@@ -3771,6 +3829,7 @@ func GetIntTests() IntTests {
"Versioning_Multipart_Upload_suspended_overwrite_versioned_object": Versioning_Multipart_Upload_suspended_overwrite_versioned_object,
"Versioning_Multipart_Upload_overwrite_keeps_previous_version_metadata": Versioning_Multipart_Upload_overwrite_keeps_previous_version_metadata,
"Versioning_Multipart_Upload_conditional_writes_over_delete_marker": Versioning_Multipart_Upload_conditional_writes_over_delete_marker,
"Versioning_Multipart_Upload_already_completed": Versioning_Multipart_Upload_already_completed,
"Versioning_UploadPartCopy_invalid_versionId": Versioning_UploadPartCopy_invalid_versionId,
"Versioning_UploadPartCopy_encoded_versionid_separator_invalid_versionId": Versioning_UploadPartCopy_encoded_versionid_separator_invalid_versionId,
"Versioning_UploadPartCopy_non_existing_versionId": Versioning_UploadPartCopy_non_existing_versionId,
@@ -3895,5 +3954,9 @@ func GetIntTests() IntTests {
"PostObject_multiple_checksum_headers": PostObject_multiple_checksum_headers,
"PostObject_checksums_success": PostObject_checksums_success,
"PostObject_success_double_dash_boundary": PostObject_success_double_dash_boundary,
"PostObject_object_lock_success": PostObject_object_lock_success,
"PostObject_object_lock_invalid_fields": PostObject_object_lock_invalid_fields,
"PostObject_object_lock_missing_bucket_config": PostObject_object_lock_missing_bucket_config,
"PostObject_object_lock_default_retention": PostObject_object_lock_default_retention,
}
}
+6 -18
View File
@@ -88,23 +88,11 @@ source ./tests/drivers/objects_and_versions.sh
# tags: curl,ListObjectsV2,bucket-region,x-amz-bucket-region
@test "REST - ListObjectsV2 - includes bucket header" {
if [ "$DIRECT" != "true" ]; then
skip "https://github.com/versity/versitygw/issues/1814"
fi
run get_bucket_name "$BUCKET_ONE_NAME"
assert_success
bucket_name="$output"
local bucket_name test_file test_file_two
run get_file_name
assert_success
test_file="$output"
run get_file_name
assert_success
test_file_two="$output"
run setup_bucket_and_add_files "$bucket_name" "$test_file" "$test_file_two"
run setup_bucket_and_add_files_v3 "$BUCKET_ONE_NAME" 2
assert_success
read -r bucket_name test_file test_file_two <<< "$output"
run send_rest_go_command_check_header_key_and_value "200" "x-amz-bucket-region" "$AWS_REGION" "-method" "GET" \
"-bucketName" "$bucket_name" "-query" "list-type=2"
@@ -260,6 +248,9 @@ source ./tests/drivers/objects_and_versions.sh
# tags: curl,ListObjects,start-after,invalid-query
@test "ListObjectsV1 - start-after - error" {
if [ "$DIRECT" != "true" ]; then
skip "https://github.com/versity/versitygw/issues/2004"
fi
run setup_bucket_and_files_v3 "$BUCKET_ONE_NAME" 2
assert_success
read -r bucket_name file_one file_two <<< "$output"
@@ -276,9 +267,6 @@ source ./tests/drivers/objects_and_versions.sh
# tags: curl,ListObjectsV2,start-after,continuation-token
@test "ListObjectsV1 - start-after - doesn't include continuation token" {
if [ "$DIRECT" != "true" ]; then
skip "https://github.com/versity/versitygw/issues/2007"
fi
run setup_bucket_and_files_v3 "$BUCKET_ONE_NAME" 2
assert_success
read -r bucket_name file_one file_two <<< "$output"