### 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
lookup_path = os.path.join(C.DEFAULT_LOCAL_TMP, 'ansiballz_cache')
        cached_module_filename = os.path.join(lookup_path, "%s-%s" % (remote_module_fqn, module_compression))
        zipdata = None
        
        if os.path.exists(cached_module_filename):
            display.debug('ANSIBALLZ: using cached module: %s' % cached_module_filename)
            with open(cached_module_filename, 'rb') as module_data:
                zipdata = module_data.read()
        else:
            if module_name in action_write_locks.action_write_locks:
                display.debug('ANSIBALLZ: Using lock for %s' % module_name)
                lock = action_write_locks.action_write_locks[module_name]
            else:
                
                
                
                
                display.debug('ANSIBALLZ: Using generic lock for %s' % module_name)
                lock = action_write_locks.action_write_locks[None]
            display.debug('ANSIBALLZ: Acquiring lock')
            with lock:
                display.debug('ANSIBALLZ: Lock acquired: %s' % id(lock))
                
                
                if not os.path.exists(cached_module_filename):
                    display.debug('ANSIBALLZ: Creating module')
                    
                    zipoutput = BytesIO()
                    zf = zipfile.ZipFile(zipoutput, mode='w', compression=compression_method)