Box API File Upload и Npm Multer - PullRequest
       36

Box API File Upload и Npm Multer

0 голосов
/ 16 февраля 2019

У меня проблема с загрузкой нескольких файлов с помощью Box API через npm multer .

Я мог бы добавить код, но объем кода был бы слишком большим, что я ищу в отношении способа диагностики загрузок Box API.

Я могу загрузить файл напрямую, используя Box API в node.js, используя

const fileReadStream = fileSystem.createReadStream(filePath);

Полный текстпредварительный запрос выглядит следующим образом:

{
  "urlProvider": "https://upload.box.com/api/2.0/files/content",
  "multipart": {
    "attributes": "{\"name\":\"banana-2019-02-15T20:43:30.651Z.png\",\"parent\":{\"id\":\"67056331004\"}}",
    "file": {
      "value": {
        "_readableState": {
          "objectMode": false,
          "highWaterMark": 65536,
          "buffer": {
            "head": null,
            "tail": null,
            "length": 0
          },
          "length": 0,
          "pipes": null,
          "pipesCount": 0,
          "flowing": null,
          "ended": false,
          "endEmitted": false,
          "reading": false,
          "sync": true,
          "needReadable": false,
          "emittedReadable": false,
          "readableListening": false,
          "resumeScheduled": false,
          "emitClose": false,
          "destroyed": false,
          "defaultEncoding": "utf8",
          "awaitDrain": 0,
          "readingMore": false,
          "decoder": null,
          "encoding": null
        },
        "readable": true,
        "_events": {},
        "_eventsCount": 1,
        "path": "/Users/jeffrey.tanner/github/jeff00docusign/act-archive-box/tests-dev/files/banana.png",
        "fd": null,
        "flags": "r",
        "mode": 438,
        "end": null,
        "autoClose": true,
        "bytesRead": 0,
        "closed": false
      },
      "options": {
        "filename": "banana-2019-02-15T20:43:30.651Z.png",
        "contentType": null
      }
    }
  },
  "headers": {
    "authorization": "Bearer [ACCESS_TOKEN]",
    "Content-Type": "multipart/form-data"
  }
}

И это возвращает HTTP Status Success CREATE 201 .

Когда я делаю тот же запрос через multer в пределах _handleFile():

{
  "urlProvider": "https://upload.box.com/api/2.0/files/content",
  "multipart": {
    "attributes": "{\"name\":\"banana-2019-02-15T20:41:05.723Z.png\",\"parent\":{\"id\":\"67057354030\"}}",
    "file": {
      "value": {
        "_readableState": {
          "objectMode": false,
          "highWaterMark": 16384,
          "buffer": {
            "head": null,
            "tail": null,
            "length": 0
          },
          "length": 0,
          "pipes": null,
          "pipesCount": 0,
          "flowing": null,
          "ended": false,
          "endEmitted": false,
          "reading": false,
          "sync": true,
          "needReadable": false,
          "emittedReadable": false,
          "readableListening": false,
          "resumeScheduled": false,
          "emitClose": true,
          "destroyed": false,
          "defaultEncoding": "utf8",
          "awaitDrain": 0,
          "readingMore": false,
          "decoder": null,
          "encoding": null
        },
        "readable": true,
        "_events": {},
        "_eventsCount": 3,
        "truncated": false
      },
      "options": {
        "filename": "banana-2019-02-15T20:41:05.723Z.png",
        "contentType": null
      }
    }
  },
  "headers": {
    "authorization": "Bearer [ACCESS_TOKEN]",
    "Content-Type": "multipart/form-data"
  }
}

Я получаю Ошибка состояния HTTP 400 :

{
  "statusCode": 400,
  "res": {
    "statusCode": 400,
    "body": "",
    "headers": {
      "date": "Fri, 15 Feb 2019 20:41:15 GMT",
      "content-type": "text/html; charset=UTF-8",
      "content-length": "0",
      "connection": "close",
      "age": "0",
      "strict-transport-security": "max-age=31536000"
    },
    "request": {
      "uri": {
        "protocol": "https:",
        "slashes": true,
        "auth": null,
        "host": "upload.box.com",
        "port": 443,
        "hostname": "upload.box.com",
        "hash": null,
        "search": null,
        "query": null,
        "pathname": "/api/2.0/files/content",
        "path": "/api/2.0/files/content",
        "href": "https://upload.box.com/api/2.0/files/content"
      },
      "method": "POST",
      "headers": {
        "authorization": "Bearer [ACCESS_TOKEN]",
        "Content-Type": "multipart/form-data; boundary=--------------------------634091237889493893491401",
        "content-length": 417
      }
    }
  }
}

Какие действия можно выполнить для диагностики этой проблемы?

Пока что я не нашел сообщения об ошибке, чтобы помочь понять, почему я получаю ошибку 400.

Спасибо, я ценю любую помощь.

...