Как загружать файлы в корзину s3 без формы?

#javascript #amazon-s3 #axios

#javascript #amazon-s3 #axios

Вопрос:

Я пытаюсь загрузить файл в корзину s3 после преобразования html в pdf. Все хорошо с этим, когда подписываете файл, но затем, когда он загружает его, я вижу только 49B для размера файла и не могу быть открыт.

есть идеи?

вот мой конвертер и функция загрузки

 const uploadDocumentToS3 = async (awsSign, file) => {
  try {
    var signedUrl = awsSign.signedRequest;

    var options = {
      headers: {
        "Content-Type": "application/pdf"
      }
    };

    const upload = await axios.put(signedUrl, file, options);

    return upload;
  } catch (error) {
    console.log(error);
  }
};

async function createStatement() {
  try {
    const content = await compile("statement", data);

    var options = { format: "A4" };
    var fileName = "template";
    pdf
      .create(content, options)
      .toFile(`./src/services/${fileName}.pdf`, async function(err, res) {
        if (err) return console.log(err);
        // get s3SignRequest
        const awsSign = await signS3(`${fileName}.pdf`, "application/pdf");
        // upload file to s3 Bucket
        const uploadRes = await uploadDocumentToS3(awsSign, res.filename);
      });
  } catch (error) {
    console.log(error);
  }
}
  

Комментарии:

1. Я думаю, что вы на самом деле не загружаете файл, попробуйте прочитать его из файловой системы и добавить в качестве данных формы в свой запрос.

2. @dpolicastro Я сделал это const document = .fs.readfile(file, "utf-8"); , и вместо этого в axios file я добавил document теперь размер файла составляет 1,6 МБ, но когда я открываю его, я могу получить только 2 белые страницы