Using aws4fetch to push file to S3

Hi I am trying to push xml request received in worker into S3 as a file , I have public access to my bucket but when I try to upload file it gives

AccessDenied
Access Denied
MTN3403HZJ9JPRXF
BmVD9f24yZ4gTnqwvo0aY6w2IhQ6DMp1dd4bez3Pp/AunBO1BajXDbp8v39LGS6vOF32V1tleq8=

My code
const aws4fetch = require(‘aws4fetch’)

const xml = parser.parseFromString(await request.text());

const endpoint = https://xxx.s3.eu-west-2.amazonaws.com/;

const filename = `${event}_${Math.floor(Date.now() / 10)}.xml`;

console.log(`${endpoint}${filename}`);

const res = await aws.fetch(`${endpoint}${filename}`, {
    method: 'PUT',
    body: xml
})