# Non-standard S3 tests (Ceph/RGW/MinIO specific) # ================================================ # # These tests use vendor-specific extensions not part of AWS S3 API. # They are PERMANENTLY EXCLUDED from RustFS compatibility testing. # # Exclusion reasons: # - fails_on_aws marker: Ceph-specific features # - X-RGW-* headers: Ceph proprietary headers # - allowUnordered: Ceph-specific query parameter # - ACL tests: RustFS uses IAM policy-based access control # - CORS tests: Not implemented # - POST Object: HTML form upload not implemented # - Error format differences: Minor response format variations # # Total: non-standard tests listed below test_100_continue test_100_continue_error_retry test_abort_multipart_upload_not_found test_access_bucket_private_object_private test_access_bucket_private_object_publicread test_access_bucket_private_object_publicreadwrite test_access_bucket_private_objectv2_private test_access_bucket_private_objectv2_publicread test_access_bucket_private_objectv2_publicreadwrite test_access_bucket_publicread_object_private test_access_bucket_publicread_object_publicread test_access_bucket_publicread_object_publicreadwrite test_access_bucket_publicreadwrite_object_private test_access_bucket_publicreadwrite_object_publicread test_access_bucket_publicreadwrite_object_publicreadwrite test_account_usage test_atomic_conditional_write_1mb test_atomic_dual_conditional_write_1mb test_atomic_write_bucket_gone test_block_public_restrict_public_buckets test_bucket_acl_canned test_bucket_acl_canned_authenticatedread test_bucket_acl_canned_during_create test_bucket_acl_canned_private_to_private test_bucket_acl_canned_publicreadwrite test_bucket_acl_default test_bucket_acl_grant_email test_bucket_acl_grant_email_not_exist test_bucket_acl_grant_nonexist_user test_bucket_acl_grant_userid_fullcontrol test_bucket_acl_grant_userid_read test_bucket_acl_grant_userid_readacp test_bucket_acl_grant_userid_write test_bucket_acl_grant_userid_writeacp test_bucket_acl_revoke_all test_bucket_concurrent_set_canned_acl test_bucket_create_exists test_bucket_create_exists_nonowner test_bucket_create_naming_bad_ip test_bucket_create_naming_dns_long test_bucket_create_special_key_names test_bucket_get_location test_bucket_head_extended test_bucket_header_acl_grants test_bucket_list_delimiter_not_skip_special test_bucket_list_delimiter_prefix test_bucket_list_delimiter_prefix_underscore test_bucket_list_many test_bucket_list_maxkeys_one test_bucket_list_objects_anonymous test_bucket_list_objects_anonymous_fail test_bucket_list_return_data test_bucket_list_return_data_versioning test_bucket_list_unordered test_bucket_listv2_both_continuationtoken_startafter test_bucket_listv2_delimiter_prefix test_bucket_listv2_delimiter_prefix_underscore test_bucket_listv2_many test_bucket_listv2_maxkeys_one test_bucket_listv2_objects_anonymous test_bucket_listv2_objects_anonymous_fail test_bucket_listv2_unordered test_bucket_logging_bucket_acl_required test_bucket_logging_bucket_auth_type test_bucket_logging_cleanup_bucket_concurrent_deletion_j test_bucket_logging_cleanup_bucket_concurrent_deletion_j_single test_bucket_logging_cleanup_bucket_concurrent_deletion_s test_bucket_logging_cleanup_bucket_concurrent_deletion_s_single test_bucket_logging_cleanup_bucket_deletion_j test_bucket_logging_cleanup_bucket_deletion_j_single test_bucket_logging_cleanup_bucket_deletion_s test_bucket_logging_cleanup_bucket_deletion_s_single test_bucket_logging_cleanup_concurrent_disabling_j test_bucket_logging_cleanup_concurrent_disabling_j_single test_bucket_logging_cleanup_concurrent_disabling_s test_bucket_logging_cleanup_concurrent_disabling_s_single test_bucket_logging_cleanup_concurrent_updating_j test_bucket_logging_cleanup_concurrent_updating_j_single test_bucket_logging_cleanup_concurrent_updating_s test_bucket_logging_cleanup_concurrent_updating_s_single test_bucket_logging_cleanup_disabling_j test_bucket_logging_cleanup_disabling_j_single test_bucket_logging_cleanup_disabling_s test_bucket_logging_cleanup_disabling_s_single test_bucket_logging_cleanup_updating_j test_bucket_logging_cleanup_updating_j_single test_bucket_logging_cleanup_updating_s test_bucket_logging_cleanup_updating_s_single test_bucket_logging_concurrent_flush_j test_bucket_logging_concurrent_flush_j_single test_bucket_logging_concurrent_flush_s test_bucket_logging_concurrent_flush_s_single test_bucket_logging_conf_concurrent_updating_pfx_j test_bucket_logging_conf_concurrent_updating_pfx_s test_bucket_logging_conf_concurrent_updating_roll_j test_bucket_logging_conf_concurrent_updating_roll_s test_bucket_logging_conf_updating_pfx_j test_bucket_logging_conf_updating_pfx_s test_bucket_logging_conf_updating_roll_j test_bucket_logging_conf_updating_roll_s test_bucket_logging_copy_objects test_bucket_logging_copy_objects_bucket test_bucket_logging_copy_objects_bucket_versioned test_bucket_logging_copy_objects_versioned test_bucket_logging_delete_objects test_bucket_logging_delete_objects_versioned test_bucket_logging_event_type_j test_bucket_logging_event_type_s test_bucket_logging_flush_empty test_bucket_logging_flush_j test_bucket_logging_flush_j_single test_bucket_logging_flush_s test_bucket_logging_flush_s_single test_bucket_logging_get_objects test_bucket_logging_get_objects_versioned test_bucket_logging_head_objects test_bucket_logging_head_objects_versioned test_bucket_logging_key_filter_j test_bucket_logging_key_filter_s test_bucket_logging_mpu_copy test_bucket_logging_mpu_copy_versioned test_bucket_logging_mpu_j test_bucket_logging_mpu_s test_bucket_logging_mpu_versioned_j test_bucket_logging_mpu_versioned_s test_bucket_logging_mtime test_bucket_logging_multi_delete test_bucket_logging_multi_delete_versioned test_bucket_logging_multiple_prefixes test_bucket_logging_notupdating_j test_bucket_logging_notupdating_j_single test_bucket_logging_notupdating_s test_bucket_logging_notupdating_s_single test_bucket_logging_object_acl_required test_bucket_logging_object_meta test_bucket_logging_part_cleanup_concurrent_deletion_j test_bucket_logging_part_cleanup_concurrent_deletion_s test_bucket_logging_part_cleanup_concurrent_disabling_j test_bucket_logging_part_cleanup_concurrent_disabling_s test_bucket_logging_part_cleanup_concurrent_updating_j test_bucket_logging_part_cleanup_concurrent_updating_s test_bucket_logging_part_cleanup_deletion_j test_bucket_logging_part_cleanup_deletion_s test_bucket_logging_part_cleanup_disabling_j test_bucket_logging_part_cleanup_disabling_s test_bucket_logging_part_cleanup_updating_j test_bucket_logging_part_cleanup_updating_s test_bucket_logging_partitioned_key test_bucket_logging_permission_change_j test_bucket_logging_permission_change_s test_bucket_logging_put_and_flush test_bucket_logging_put_concurrency test_bucket_logging_put_objects test_bucket_logging_put_objects_versioned test_bucket_logging_roll_time test_bucket_logging_simple_key test_bucket_logging_single_prefix test_bucket_logging_target_cleanup_j test_bucket_logging_target_cleanup_j_single test_bucket_logging_target_cleanup_s test_bucket_logging_target_cleanup_s_single test_bucket_policy_get_obj_acl_existing_tag test_bucket_policy_get_obj_existing_tag test_bucket_policy_get_obj_tagging_existing_tag test_bucket_policy_put_obj_copy_source test_bucket_policy_put_obj_copy_source_meta test_bucket_policy_put_obj_kms_noenc test_bucket_policy_put_obj_request_obj_tag test_bucket_policy_put_obj_s3_incorrect_algo_sse_s3 test_bucket_policy_put_obj_s3_noenc test_bucket_policy_put_obj_tagging_existing_tag test_bucket_policy_set_condition_operator_end_with_IfExists test_bucket_policy_upload_part_copy test_bucket_recreate_new_acl test_bucket_recreate_not_overriding test_bucket_recreate_overwrite_acl test_copy_object_ifmatch_failed test_copy_object_ifmatch_good test_copy_object_ifnonematch_failed test_copy_object_ifnonematch_good test_cors_header_option test_cors_origin_response test_cors_origin_wildcard test_cors_presigned_get_object test_cors_presigned_get_object_tenant test_cors_presigned_get_object_tenant_v2 test_cors_presigned_get_object_v2 test_cors_presigned_put_object test_cors_presigned_put_object_tenant test_cors_presigned_put_object_tenant_v2 test_cors_presigned_put_object_tenant_with_acl test_cors_presigned_put_object_v2 test_cors_presigned_put_object_with_acl test_create_bucket_bucket_owner_enforced test_create_bucket_bucket_owner_preferred test_create_bucket_object_writer test_delete_marker_expiration test_delete_marker_nonversioned test_delete_marker_suspended test_delete_marker_versioned test_delete_object_current_if_match test_delete_object_current_if_match_last_modified_time test_delete_object_current_if_match_size test_delete_object_if_match test_delete_object_if_match_last_modified_time test_delete_object_if_match_size test_delete_object_version_if_match test_delete_object_version_if_match_last_modified_time test_delete_object_version_if_match_size test_delete_objects_current_if_match test_delete_objects_current_if_match_last_modified_time test_delete_objects_current_if_match_size test_delete_objects_if_match test_delete_objects_if_match_last_modified_time test_delete_objects_if_match_size test_delete_objects_version_if_match test_delete_objects_version_if_match_last_modified_time test_delete_objects_version_if_match_size test_delete_tags_obj_public test_encrypted_transfer_13b test_encrypted_transfer_1MB test_encrypted_transfer_1b test_encrypted_transfer_1kb test_encryption_sse_c_deny_algo_with_bucket_policy test_encryption_sse_c_enforced_with_bucket_policy test_encryption_sse_c_multipart_invalid_chunks_1 test_encryption_sse_c_multipart_invalid_chunks_2 test_encryption_sse_c_multipart_upload test_encryption_sse_c_post_object_authenticated_request test_encryption_sse_c_unaligned_multipart_upload test_expected_bucket_owner test_get_multipart_checksum_object_attributes test_get_multipart_object_attributes test_get_obj_tagging test_get_object_attributes test_get_object_ifmatch_failed test_get_object_ifmodifiedsince_failed test_get_object_ifnonematch_failed test_get_object_ifnonematch_good test_get_object_ifunmodifiedsince_good test_get_paginated_multipart_object_attributes test_get_single_multipart_object_attributes test_get_sse_c_encrypted_object_attributes test_get_tags_acl_public test_head_bucket_usage test_lifecycle_cloud_multiple_transition test_lifecycle_cloud_transition test_lifecycle_cloud_transition_large_obj test_lifecycle_deletemarker_expiration test_lifecycle_deletemarker_expiration_with_days_tag test_lifecycle_expiration test_lifecycle_expiration_date test_lifecycle_expiration_header_and_tags_head test_lifecycle_expiration_header_head test_lifecycle_expiration_header_tags_head test_lifecycle_expiration_newer_noncurrent test_lifecycle_expiration_noncur_tags1 test_lifecycle_expiration_size_gt test_lifecycle_expiration_size_lt test_lifecycle_expiration_tags1 test_lifecycle_expiration_tags2 test_lifecycle_expiration_versioned_tags2 test_lifecycle_expiration_versioning_enabled test_lifecycle_multipart_expiration test_lifecycle_noncur_cloud_transition test_lifecycle_noncur_expiration test_lifecycle_noncur_transition test_lifecycle_transition test_lifecycle_transition_single_rule_multi_trans test_lifecyclev2_expiration test_list_buckets_anonymous test_list_buckets_invalid_auth test_list_buckets_paginated test_list_multipart_upload test_list_multipart_upload_owner test_multipart_checksum_sha256 test_multipart_copy_improper_range test_multipart_copy_invalid_range test_multipart_copy_multiple_sizes test_multipart_copy_small test_multipart_copy_special_names test_multipart_copy_versioned test_multipart_get_part test_multipart_put_current_object_if_match test_multipart_put_current_object_if_none_match test_multipart_put_object_if_match test_multipart_single_get_part test_multipart_sse_c_get_part test_multipart_upload test_multipart_upload_contents test_multipart_upload_resend_part test_multipart_upload_small test_multipart_use_cksum_helper_crc32 test_multipart_use_cksum_helper_crc32c test_multipart_use_cksum_helper_crc64nvme test_multipart_use_cksum_helper_sha1 test_multipart_use_cksum_helper_sha256 test_non_multipart_get_part test_non_multipart_sse_c_get_part test_object_acl test_object_acl_canned test_object_acl_canned_authenticatedread test_object_acl_canned_bucketownerfullcontrol test_object_acl_canned_bucketownerread test_object_acl_canned_during_create test_object_acl_canned_publicreadwrite test_object_acl_default test_object_acl_full_control_verify_attributes test_object_acl_full_control_verify_owner test_object_acl_read test_object_acl_readacp test_object_acl_write test_object_acl_writeacp test_object_anon_put test_object_anon_put_write_access test_object_content_encoding_aws_chunked test_object_copy_16m test_object_copy_canned_acl test_object_copy_diff_bucket test_object_copy_not_owned_bucket test_object_copy_replacing_metadata test_object_copy_retaining_metadata test_object_copy_same_bucket test_object_copy_to_itself test_object_copy_to_itself_with_metadata test_object_copy_verify_contenttype test_object_copy_versioned_bucket test_object_copy_versioned_url_encoding test_object_copy_versioning_multipart_upload test_object_copy_zero_size test_object_delete_key_bucket_gone test_object_header_acl_grants test_object_lock_changing_mode_from_compliance test_object_lock_changing_mode_from_governance_with_bypass test_object_lock_changing_mode_from_governance_without_bypass test_object_lock_delete_multipart_object_with_legal_hold_on test_object_lock_delete_multipart_object_with_retention test_object_lock_delete_object_with_legal_hold_off test_object_lock_delete_object_with_legal_hold_on test_object_lock_delete_object_with_retention test_object_lock_delete_object_with_retention_and_marker test_object_lock_get_legal_hold test_object_lock_get_obj_lock test_object_lock_get_obj_metadata test_object_lock_get_obj_retention test_object_lock_get_obj_retention_iso8601 test_object_lock_multi_delete_object_with_retention test_object_lock_put_legal_hold test_object_lock_put_legal_hold_invalid_status test_object_lock_put_obj_lock test_object_lock_put_obj_lock_invalid_days test_object_lock_put_obj_lock_invalid_mode test_object_lock_put_obj_lock_invalid_status test_object_lock_put_obj_lock_invalid_years test_object_lock_put_obj_lock_with_days_and_years test_object_lock_put_obj_retention test_object_lock_put_obj_retention_increase_period test_object_lock_put_obj_retention_invalid_mode test_object_lock_put_obj_retention_override_default_retention test_object_lock_put_obj_retention_shorten_period test_object_lock_put_obj_retention_shorten_period_bypass test_object_lock_put_obj_retention_versionid test_object_lock_suspend_versioning test_object_lock_uploading_obj test_object_raw_authenticated test_object_raw_authenticated_bucket_acl test_object_raw_authenticated_bucket_gone test_object_raw_authenticated_object_acl test_object_raw_authenticated_object_gone test_object_raw_get test_object_raw_get_bucket_acl test_object_raw_get_bucket_gone test_object_raw_get_object_acl test_object_raw_get_object_gone test_object_raw_get_x_amz_expires_not_expired test_object_raw_get_x_amz_expires_not_expired_tenant test_object_raw_get_x_amz_expires_out_max_range test_object_raw_get_x_amz_expires_out_positive_range test_object_raw_get_x_amz_expires_out_range_zero test_object_raw_put_authenticated_expired test_object_raw_response_headers test_object_read_unreadable test_object_requestid_matches_header_on_error test_object_set_get_unicode_metadata test_object_write_with_chunked_transfer_encoding test_post_object_anonymous_request test_post_object_authenticated_no_content_type test_post_object_authenticated_request test_post_object_authenticated_request_bad_access_key test_post_object_case_insensitive_condition_fields test_post_object_condition_is_case_sensitive test_post_object_empty_conditions test_post_object_escaped_field_values test_post_object_expired_policy test_post_object_expires_is_case_sensitive test_post_object_ignored_header test_post_object_invalid_access_key test_post_object_invalid_content_length_argument test_post_object_invalid_date_format test_post_object_invalid_request_field_value test_post_object_invalid_signature test_post_object_missing_conditions_list test_post_object_missing_content_length_argument test_post_object_missing_expires_condition test_post_object_missing_policy_condition test_post_object_missing_signature test_post_object_no_key_specified test_post_object_request_missing_policy_specified_field test_post_object_set_invalid_success_code test_post_object_set_key_from_filename test_post_object_set_success_code test_post_object_success_redirect_action test_post_object_tags_anonymous_request test_post_object_tags_authenticated_request test_post_object_upload_larger_than_chunk test_post_object_upload_size_below_minimum test_post_object_upload_size_limit_exceeded test_post_object_upload_size_rgw_chunk_size_bug test_post_object_user_specified_header test_post_object_wrong_bucket test_put_bucket_acl_grant_group_read test_put_bucket_logging_account_j test_put_bucket_logging_account_s test_put_bucket_logging_extensions test_put_bucket_logging_policy_wildcard_objects test_put_bucket_logging_tenant_j test_put_bucket_logging_tenant_s test_put_bucket_ownership_bucket_owner_enforced test_put_bucket_ownership_bucket_owner_preferred test_put_bucket_ownership_object_writer test_put_current_object_if_match test_put_current_object_if_none_match test_put_delete_tags test_put_max_tags test_put_modify_tags test_put_obj_with_tags test_put_object_current_if_match test_put_object_if_match test_put_object_ifmatch_failed test_put_object_ifmatch_good test_put_object_ifmatch_nonexisted_failed test_put_object_ifmatch_overwrite_existed_good test_put_object_ifnonmatch_failed test_put_object_ifnonmatch_good test_put_object_ifnonmatch_nonexisted_good test_put_object_ifnonmatch_overwrite_existed_failed test_put_tags_acl_public test_ranged_big_request_response_code test_ranged_request_response_code test_ranged_request_return_trailing_bytes_response_code test_ranged_request_skip_leading_bytes_response_code test_read_through test_restore_noncur_obj test_restore_object_permanent test_restore_object_temporary test_set_cors test_sse_kms_default_post_object_authenticated_request test_sse_kms_default_upload_1b test_sse_kms_default_upload_1kb test_sse_kms_default_upload_1mb test_sse_kms_default_upload_8mb test_sse_kms_method_head test_sse_kms_multipart_invalid_chunks_1 test_sse_kms_multipart_invalid_chunks_2 test_sse_kms_multipart_upload test_sse_kms_post_object_authenticated_request test_sse_kms_present test_sse_kms_transfer_13b test_sse_kms_transfer_1MB test_sse_kms_transfer_1b test_sse_kms_transfer_1kb test_sse_s3_default_method_head test_sse_s3_default_multipart_upload test_sse_s3_default_post_object_authenticated_request test_sse_s3_default_upload_1b test_sse_s3_default_upload_1kb test_sse_s3_default_upload_1mb test_sse_s3_default_upload_8mb test_sse_s3_encrypted_upload_1b test_sse_s3_encrypted_upload_1kb test_sse_s3_encrypted_upload_1mb test_sse_s3_encrypted_upload_8mb test_versioned_object_acl_no_version_specified test_versioning_copy_obj_version test_versioning_multi_object_delete_with_marker_create test_versioning_obj_create_overwrite_multipart test_versioning_obj_suspended_copy test_versioning_stack_delete_merkers