**Describe the situation**

The author implemented it but enabled only for DiskS3.
CC @excitoon 
{
        current_key = (*file_iterator)();
        auto read_buffer_creator = [&]()
        {
            read_buffer_creator_was_used = true;
            if (current_key.empty())
                throw Exception(
                    ErrorCodes::CANNOT_EXTRACT_TABLE_STRUCTURE,
                    "Cannot extract table structure from {} format file, because there are no files with provided path in S3. You must specify "
                    "table structure manually",
                    format);
            return wrapReadBufferWithCompressionMethod(
                std::make_unique<ReadBufferFromS3>(
                    client_auth.client, client_auth.uri.bucket, current_key, max_single_read_retries, ctx->getReadSettings()),
                chooseCompressionMethod(current_key, compression_method));
        };
        try
        {
            return readSchemaFromFormat(format, format_settings, read_buffer_creator, ctx);
        }
        catch (...)
        {
            if (!is_key_with_globs || !read_buffer_creator_was_used)
                throw;
            exception_messages += getCurrentExceptionMessage(false) + "\n";
        }
    } while (!current_key.empty());
    throw Exception(ErrorCodes::CANNOT_EXTRACT_TABLE_STRUCTURE, "All attempts to extract table structure from s3 files failed. Errors:\n{}", exception_messages);
}
void registerStorageS3Impl(const String & name, StorageFactory & factory)