Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

File upload is not working #615

Closed
zerlok opened this issue Jan 22, 2020 · 2 comments
Closed

File upload is not working #615

zerlok opened this issue Jan 22, 2020 · 2 comments

Comments

@zerlok
Copy link

zerlok commented Jan 22, 2020

Hello, I would like to notice that file upload is not working anymore.

In our service we're using docker and typescript (more info see below), also we're using graphql-yoga to publish our graphql API. We are using our service as a gateway (thanks apollo schema stitching), so each request is forwarded to an appropriate service in our platform. Also we have to upload user files in our storage, that's why we're using a custom file upload link (it accepts graphql multipart request, stores files' data in buffer, then builds form data and forwards a request to the internal service). It was working well, until now.

I've tried to find out the problem, so i've decided to use your example with file upload. But it's not working too.

I've done what you readme says about cloning the repo, installing the dependencies and then I've started the server with Upload example.

Dependencies:

$ npm list
/home/user/tmp/graphql-yoga/examples/file-upload
├─┬ @types/[email protected]
│ └── @types/[email protected] deduped
├── @types/[email protected]
├─┬ [email protected]
│ ├─┬ @types/[email protected]
│ │ └── @types/[email protected] deduped
│ ├─┬ @types/[email protected]
│ │ ├─┬ @types/[email protected]
│ │ │ ├─┬ @types/[email protected]
│ │ │ │ └── @types/[email protected]
│ │ │ └── @types/[email protected]
│ │ ├─┬ @types/[email protected]
│ │ │ ├── @types/[email protected]
│ │ │ └── @types/[email protected]
│ │ └─┬ @types/[email protected]
│ │   ├── @types/[email protected] deduped
│ │   └── @types/[email protected]
│ ├── @types/[email protected]
│ ├── @types/[email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├─┬ @wry/[email protected]
│ │ │ │ └── [email protected] deduped
│ │ │ ├── [email protected]
│ │ │ ├── [email protected] deduped
│ │ │ └── [email protected] deduped
│ │ ├─┬ [email protected]
│ │ │ └── [email protected] deduped
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │   ├── [email protected] deduped
│ │   └── [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected] deduped
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected] deduped
│ │ │ └─┬ [email protected]
│ │ │   ├── [email protected]
│ │ │   └── [email protected] deduped
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected] deduped
│ │ └── [email protected] deduped
│ ├─┬ [email protected]
│ │ ├─┬ @babel/[email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected] deduped
│ │ │ │ └── [email protected]
│ │ │ └─┬ [email protected]
│ │ │   ├── [email protected]
│ │ │   ├── [email protected]
│ │ │   ├── [email protected]
│ │ │   └── [email protected]
│ │ └── [email protected]
│ ├── UNMET PEER DEPENDENCY aws-lambda@^0.1.2
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │   ├── [email protected]
│ │   ├── [email protected] deduped
│ │   ├── [email protected] deduped
│ │   ├── [email protected] deduped
│ │   ├─┬ [email protected]
│ │   │ ├── [email protected] deduped
│ │   │ ├── [email protected]
│ │   │ ├── [email protected] deduped
│ │   │ ├── [email protected] deduped
│ │   │ └── [email protected]
│ │   ├─┬ [email protected]
│ │   │ └── [email protected]
│ │   ├── [email protected] deduped
│ │   ├── [email protected] deduped
│ │   ├─┬ [email protected]
│ │   │ ├── [email protected] deduped
│ │   │ ├── [email protected] deduped
│ │   │ ├── [email protected] deduped
│ │   │ └── [email protected] deduped
│ │   └── [email protected] deduped
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected] deduped
│ │ ├─┬ [email protected]
│ │ │ └── [email protected] deduped
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected] deduped
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected]
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected] deduped
│ │ │ └── [email protected] deduped
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected] deduped
│ │ │ ├── [email protected] deduped
│ │ │ └── [email protected] deduped
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected] deduped
│ │ ├── [email protected]
│ │ └── [email protected] deduped
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected] deduped
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │   └─┬ [email protected]
│ │     ├── [email protected] deduped
│ │     ├── [email protected] deduped
│ │     ├─┬ [email protected]
│ │     │ └─┬ [email protected]
│ │     │   ├── [email protected]
│ │     │   └── [email protected]
│ │     ├─┬ [email protected]
│ │     │ ├─┬ [email protected]
│ │     │ │ └── [email protected]
│ │     │ └── [email protected]
│ │     └─┬ [email protected]
│ │       └─┬ [email protected]
│ │         ├── [email protected]
│ │         └── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected] deduped
│ │ ├── [email protected] deduped
│ │ ├── [email protected]
│ │ ├── [email protected] deduped
│ │ └── [email protected]
│ └─┬ [email protected]
│   ├── [email protected]
│   ├── [email protected]
│   ├── [email protected]
│   ├── [email protected]
│   └─┬ [email protected]
│     └── [email protected]
├─┬ [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ └─┬ [email protected]
│   ├─┬ [email protected]
│   │ └── [email protected]
│   ├── [email protected]
│   ├── [email protected] deduped
│   ├── [email protected]
│   ├── [email protected]
│   ├── [email protected]
│   ├─┬ [email protected]
│   │ ├─┬ [email protected]
│   │ │ └── [email protected]
│   │ └── [email protected]
│   ├── [email protected]
│   ├── [email protected]
│   ├─┬ [email protected]
│   │ └── [email protected]
│   ├── [email protected] deduped
│   ├── [email protected]
│   ├─┬ [email protected]
│   │ └── [email protected]
│   └── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ └─┬ [email protected]
│   └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected]
├── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ └─┬ [email protected]
│ │ │   └── [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │   └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected] deduped
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── @types/[email protected]
│ │ ├── @types/[email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │   └── [email protected]
│ └── [email protected]
└── [email protected]

npm ERR! peer dep missing: aws-lambda@^0.1.2, required by [email protected]

I'm using insomnia to simply send requests (also multipart requests with file data). Here's what i receive on your example:

Request (multipart)
image
:

operations
{
  "operation": "UploadThatShit",
  "query": "mutation UploadThatShit($file: Upload!) { singleUpload(file: $file) { id filename } }",
  "variables": {
    "file": "file"
  }
}

map
{"file.0":["variables.0"]}

file.0
%my picture%

Response:

{
  "data": null,
  "errors": [
    {
      "message": "createReadStream is not a function",
      "locations": [
        {
          "line": 1,
          "column": 43
        }
      ],
      "path": [
        "singleUpload"
      ]
    }
  ]
}

Server logs:

TypeError: createReadStream is not a function
    at Object.<anonymous> (/home/user/tmp/graphql-yoga/examples/file-upload/index.ts:38:18)
    at step (/home/user/tmp/graphql-yoga/examples/file-upload/index.ts:32:23)
    at Object.next (/home/user/tmp/graphql-yoga/examples/file-upload/index.ts:13:53)
    at fulfilled (/home/user/tmp/graphql-yoga/examples/file-upload/index.ts:4:58)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:228:7)

My intent

I was trying to understand why we're having a trouble with file upload:

RangeError: Maximum call stack size exceeded
    at ReadStream.open (/app/node_modules/fs-capacitor/lib/index.js:1:1)
    at _openReadFs (internal/fs/streams.js:135:12)
    at ReadStream.<anonymous> (internal/fs/streams.js:128:3)
    at ReadStream.deprecated [as open] (internal/util.js:86:15)
    at ReadStream.open (/app/node_modules/fs-capacitor/lib/index.js:94:11)
    at _openReadFs (internal/fs/streams.js:135:12)
    at ReadStream.<anonymous> (internal/fs/streams.js:128:3)
    at ReadStream.deprecated [as open] (internal/util.js:86:15)
    at ReadStream.open (/app/node_modules/fs-capacitor/lib/index.js:94:11)
    at _openReadFs (internal/fs/streams.js:135:12)

It seems to me that the same problem was described here. But I want show you that the problems still exists and your example doesn't help us to resolve it.

@johntr
Copy link

johntr commented Feb 21, 2020

This seems to fix it for me.
jaydenseric/graphql-upload#170 (comment)

@saihaj saihaj mentioned this issue Dec 5, 2021
32 tasks
@saihaj
Copy link
Collaborator

saihaj commented Feb 19, 2022

Hey @zerlok @johntr we @the-guild-org are the the new maintainers of this project and are actively developing v2. It now supports GraphQL Multipart Request spec so there is no need to additional libraries checkout https://www.graphql-yoga.com/docs/features/file-uploads and would love to get your feedback on our beta release. Thanks!

@saihaj saihaj closed this as completed Feb 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants