Локальная загрузка файла JSON с использованием метода PUT запроса изменяет файл - PullRequest
1 голос
/ 10 октября 2019

Сводка

Мне нужно загрузить локальный файл JSON в s3, используя общедоступный URL-адрес s3. Я использую метод PUT с formData для загрузки файла. Файл успешно загружен, но содержимое файла изменено. Точнее, к содержимому добавляются заголовки запроса.

Простейший пример для воспроизведения

Я использую следующий код для загрузки файла.

// Let the name of the file be **test.json**. The contents are as following:
{
  "a": "1",
  "b": "2"
}

код js

// code starts here
const url= 'some s3 path url';
const options = {
  method: 'PUT',
  url: url,
  headers: {
    'x-amz-acl': 'bucket-owner-full-control'
  },
  formData: {
    file: fs.createReadStream(path.join('./test.json'))
  }
};

request(options, function (error, response, body) {
    if (error) throw new Error(chalk.bold.red(error));
    if (response.statusCode != 200) {
        console.error(JSON.stringify(response.body));
        return;
    }
    console.log(chalk.green.bold(response.statusCode));
})

Ожидаемое поведение

Файл должен быть загружен на S3 с аналогичными данными.

Текущее поведение

Файл загружается в корзину S3, но содержимое внутри файла изменяется. Новое содержимое файла:

----------------------------054810111042388555675130
Content-Disposition: form-data; name="file"; filename="test.json"
Content-Type: application/json

{
    "a": "1",
    "b": "2"
}
----------------------------054810111042388555675130--

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

...