Help: Stream upload to S3
I'm wondering if anyone would be kind enough to point me in the right direction, been at it for a few hours now 

What I think is pretty vanilla graphql-upload and s3 usage from their respective docs: (AWS SDK v3) 

```ts
const { createReadStream, filename, mimetype, encoding } = await file;

const fileStream = createReadStream();

const data = await s3Client.send(
  new PutObjectCommand({
    Bucket: process.env.UPLOAD_BUCKET,
    Key: `delete-me`,
    Body: fileStream,
  })
);

await finished(fileStream);

return JSON.stringify({ filename, mimetype, encoding });
```

Raises: "A header you provided implies functionality that is not implemented" (501) Header: **Transfer-Encoding**

However...

```ts
const { createReadStream, filename, mimetype, encoding } = await file;

const fileStream = createReadStream();

const out = fs.createWriteStream('tmpfile');

fileStream.pipe(out);
await finished(fileStream);

const data = await s3Client.send(
  new PutObjectCommand({
    Bucket: process.env.UPLOAD_BUCKET,
    Key: `delete-me`,
    Body: fs.createReadStream('tmpfile'),
  })
);

return JSON.stringify({ filename, mimetype, encoding });
```

Works! But obviously writing it out again and reading back in is tragically slow. And if my understanding so far of graphql-upload's internals is correct, it is also hopelessly redundant.

I've tried all manner of naive work arounds using passthrough etc and inspired by other answers here but no matter what I do with the stream it always seems to lead back to the same Transfer-Encoding complaint.

If somebody could help me understand the difference between graphql-upload's createReadStream and node's fs.createReadStream and point me in the right direction I would be much appreciative.

Cheers

Edit: There is another person with what appears to be the same question on StackOverflow: https://stackoverflow.com/questions/69770931/node-js-aws-s3-sdk-v3-showing-error-while-putting-object