### Summary

This works on ansible 2.9.6 but fails on 3.8.10
Running on Ubuntu 20.04, Python version 3.8.10
**This task:**
```
  - name: Create generic link activemq to installation of choice
    file:
      src: /opt/apache-activemq-5.15.10
      dest: /opt/activemq
      state: link
```

**Produces this error:**
```
TASK [Create generic link activemq to installation of choice] ******************
fatal: [localhost]: FAILED! => {
    "changed": false,
    "rc": 1
}
MSG:
MODULE FAILURE
See stdout/stderr for the exact error
MODULE_STDOUT:
Traceback (most recent call last):
  File "/home/dfr/.ansible/tmp/ansible-tmp-24078.281748716-105360636672052/AnsiballZ_file.py", line 102, in <module>
    _ansiballz_main()
  File "/home/dfr/.ansible/tmp/ansible-tmp-24078.281748716-105360636672052/AnsiballZ_file.py", line 94, in _ansiballz_main

    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/home/dfr/.ansible/tmp/ansible-tmp-24078.281748716-105360636672052/AnsiballZ_file.py", line 34, in invoke_module
    z.writestr(zinfo, sitecustomize)
  File "/usr/lib/python3.8/zipfile.py", line 1816, in writestr
    with self.open(zinfo, mode='w') as dest:
  File "/usr/lib/python3.8/zipfile.py", line 1517, in open
    return self._open_to_write(zinfo, force_zip64=force_zip64)
  File "/usr/lib/python3.8/zipfile.py", line 1614, in _open_to_write
    self.fp.write(zinfo.FileHeader(zip64))
  File "/usr/lib/python3.8/zipfile.py", line 448, in FileHeader
    header = struct.pack(structFileHeader, stringFileHeader,
struct.error: ushort format requires 0 <= number <= (0x7fff * 2 + 1)
```
This works on ansible 2.9.6 but fails on 3.8.10

### Issue Type

Bug Report

### Component Name

file

### Ansible Version

```console
dfr@ansible-20:~/projects/m9kdeploy$ ansible --version
ansible [core 2.12.10]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/dfr/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  ansible collection location = /home/dfr/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.8.10 (default, Nov 14 2022, 12:59:47) [GCC 9.4.0]
  jinja version = 2.10.1
  libyaml = True
```


### Configuration

```console
dfr@ansible-20:~/projects/m9kdeploy/playbooks$ ansible-config dump --only-changed -t all
DEFAULT_HOST_LIST(/home/dfr/projects/m9kdeploy/playbooks/ansible.cfg) = ['/home/dfr/projects/m9kdeploy/playbooks/inventory-home']
DEFAULT_STDOUT_CALLBACK(/home/dfr/projects/m9kdeploy/playbooks/ansible.cfg) = debug
DEFAULT_VAULT_PASSWORD_FILE(/home/dfr/projects/m9kdeploy/playbooks/ansible.cfg) = /home/dfr/.ansible/vault-password
DISPLAY_SKIPPED_HOSTS(/home/dfr/projects/m9kdeploy/playbooks/ansible.cfg) = False
HOST_KEY_CHECKING(/home/dfr/projects/m9kdeploy/playbooks/ansible.cfg) = False
INTERPRETER_PYTHON(/home/dfr/projects/m9kdeploy/playbooks/ansible.cfg) = /usr/bin/python3

BECOME:
======

CACHE:
=====

CALLBACK:
========

default:
_______
display_skipped_hosts(/home/dfr/projects/m9kdeploy/playbooks/ansible.cfg) = False

CLICONF:
=======

CONNECTION:
==========

paramiko_ssh:
____________
host_key_checking(/home/dfr/projects/m9kdeploy/playbooks/ansible.cfg) = False

ssh:
___
host_key_checking(/home/dfr/projects/m9kdeploy/playbooks/ansible.cfg) = False

HTTPAPI:
=======

INVENTORY:
=========

LOOKUP:
======

NETCONF:
=======

SHELL:
=====

VARS:
====
```


### OS / Environment

Ubuntu 20.04

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)
  - name: Create generic link activemq to installation of choice
    file:
      src: /opt/apache-activemq-5.15.10
      dest: /opt/activemq
      state: link
```


### Expected Results

I expect the link to be created with no error

### Actual Results

```console
TASK [Create generic link activemq to installation of choice] ******************
fatal: [localhost]: FAILED! => {
    "changed": false,
    "rc": 1
}

MSG:

MODULE FAILURE
See stdout/stderr for the exact error


MODULE_STDOUT:



Traceback (most recent call last):

  File "/home/dfr/.ansible/tmp/ansible-tmp-24078.281748716-105360636672052/AnsiballZ_file.py", line 102, in <module>

    _ansiballz_main()

  File "/home/dfr/.ansible/tmp/ansible-tmp-24078.281748716-105360636672052/AnsiballZ_file.py", line 94, in _ansiballz_main

    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)

  File "/home/dfr/.ansible/tmp/ansible-tmp-24078.281748716-105360636672052/AnsiballZ_file.py", line 34, in invoke_module

    z.writestr(zinfo, sitecustomize)

  File "/usr/lib/python3.8/zipfile.py", line 1816, in writestr

    with self.open(zinfo, mode='w') as dest:

  File "/usr/lib/python3.8/zipfile.py", line 1517, in open

    return self._open_to_write(zinfo, force_zip64=force_zip64)

  File "/usr/lib/python3.8/zipfile.py", line 1614, in _open_to_write

    self.fp.write(zinfo.FileHeader(zip64))

  File "/usr/lib/python3.8/zipfile.py", line 448, in FileHeader

    header = struct.pack(structFileHeader, stringFileHeader,

struct.error: ushort format requires 0 <= number <= (0x7fff * 2 + 1)
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
module_substyle = 'jsonargs'
    elif b'WANT_JSON' in b_module_data:
        module_substyle = module_style = 'non_native_want_json'
    shebang = None
    
    
    if module_style in ('old', 'non_native_want_json', 'binary'):
        return b_module_data, module_style, shebang
    output = BytesIO()
    try:
        remote_module_fqn = _get_ansible_module_fqn(module_path)
    except ValueError:
        
        
        
        
        
        display.debug('ANSIBALLZ: Could not determine module FQN')
        remote_module_fqn = 'ansible.modules.%s' % module_name
    if module_substyle == 'python':
        params = dict(ANSIBLE_MODULE_ARGS=module_args,)
        try:
            python_repred_params = repr(json.dumps(params, cls=AnsibleJSONEncoder, vault_to_text=True))
        except TypeError as e:
            raise AnsibleError("Unable to pass options to module, they must be JSON serializable: %s" % to_native(e))
        try:
            compression_method = getattr(zipfile, module_compression)
        except AttributeError:
            display.warning(u'Bad module compression string specified: %s.  Using ZIP_STORED (no compression)' % module_compression)
            compression_method = zipfile.ZIP_STORED