пытаясь конвертировать docx в pdf на s3, используя cloudconvert-api в nodejs - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь преобразовать файл docx в pdf при загрузке на пространствах s3, используя cloudconvert api в nodejs. Когда я запускаю свой код, он загружает файл docx, но преобразование не происходит и также не выдает никаких ошибок. Я не понимаю, что я делаю неправильно. Вот мой код ниже.

app.post('/upload/file', upload.single('file'), (req, res) => {
    cloudconvert.createProcess(
            { inputformat: 'docx', outputformat: 'pdf' },
            (err, process) => {
              if (err) {
                console.error(`CloudConvert Process creation failed: ${err}`)
              } else {
                process.start({
                  input: {
                    s3: {
                      accesskeyid: SPACES_ACCESS_KEY_ID,
                      secretaccesskey: SPACES_SECRET_ACCESS_KEY,
                      bucket: 'files'
                    } 
                  },
                  file: req.file.key,
                  outputformat: 'pdf',
                  output: {
                    s3: {
                      accesskeyid: SPACES_ACCESS_KEY_ID,
                      secretaccesskey: SPACES_SECRET_ACCESS_KEY,
                      bucket: 'files'
                    }
                  }
                }, (err, process) => {
                  if(err) return console.log(err.message)

                  console.log('process', process)
                })
              }
            }
          )
     })

Я использую multer для обработки составных данных формы. пока я пытаюсь запустить код, он не показывает никаких ошибок и не конвертирует файл в pdf. Пожалуйста, дайте мне знать, что я делаю неправильно. Спасибо.

1 Ответ

0 голосов
/ 16 июля 2019

Привет, у меня была такая же проблема, и я не эксперт, но что-то, что вы могли бы сделать, чтобы решить эту проблему, - поместить этот код в обещание, так что вы подождете до завершения процесса конвертации, здесь вы можете найти пример

inputformat - это расширение вашего файла. выводим вам желаемое расширение params требуемые параметры для обработки и сохранения файла

 return new Promise((resolve, reject) => {
    response = cloudconvert.createProcess({inputformat: inputformat,
                                           outputformat: outputformat},
               function(error, process){
                 process.start(params, function(error, process) {
                   if (error){
                     reject({"status": "error" , "message": error})
                   } else {
                     process.wait(function(error, process){
                       if (error){
                         reject({status: "error", "error": error})
                       } else {
                         console.log(process.data.message)
                         resolve({"status": "ok" , 
                                  "message": "process complete"})
                       }
                     });
                   }
               });
           });
      });

надеюсь, что это поможет вам, идея в том, что вы можете убедиться, что вы получаете и завершаете процесс конвертации

...