Как отправить объект JSON в виде файла - PullRequest
0 голосов
/ 28 января 2019

У меня есть требование импортировать пользователей в auth0.Чтобы добиться этого, я использую API массового импорта пользователя auth0, который принимает файл JSON в качестве входных данных.

В моей лямбде у меня есть объект JSON со всем списком пользователей.Я могу записать эти данные в файл и отправить на auth0, который работает просто отлично, но

Есть ли способ, как я могу напрямую отправить этот объект JSON в виде файла?

Это работаеткод для меня -

const options = {
    uri: `${auth0Url}/api/v2/jobs/users-imports`,
    method: 'POST',
    headers: {
        Authorization: `Bearer ${this.token}`,
    },
    formData: {
        users: fs.createReadStream('/home/tushar/Documents/codes/auth-svc/test.json'),
        connection_id: 'auth0 connection id',
        upsert: 'false',
    };
    rp(options)
    .then((body) => {
        console.log('Success-', body);
    })
    .catch((err) => {
        console.log('-Error-', err);
    });

Можно ли отправить без записи и отправки файла?

1 Ответ

0 голосов
/ 18 июня 2019

У меня была именно эта проблема - оказывается, вам нужно указать имя файла в опциях для пользователей в formData:

const options = {
  uri: `${auth0Url}/api/v2/jobs/users-imports`,
  method: 'POST',
  headers: {
      Authorization: `Bearer ${this.token}`,
  },
  formData: {
    users: {
      value: JSON.stringify(yourJsonUserVariable),
      options: {
        filename: `.json`
      }
    },
      connection_id: 'auth0 connection id',
      upsert: 'false',
  };
  rp(options)
  .then((body) => {
      console.log('Success-', body);
  })
  .catch((err) => {
      console.log('-Error-', err);
  });
}
...