当前位置: 首页 > 知识库问答 >
问题:

S3上传在生产中无声失败

叶明辉
2023-03-14

我正在努力调试一个NextJS API,该API正在开发中(通过本地主机),但在生产中悄无声息地失败。

下面,两个console.log语句没有返回,所以我怀疑text ToSpeech调用没有正确执行,可能会及时?

我不知道该怎么纠正,很高兴按指示调试解决这个问题!

const faunadb = require('faunadb')
const secret = process.env.FAUNADB_SECRET_KEY
const q = faunadb.query
const client = new faunadb.Client({ secret })
const TextToSpeechV1 = require('ibm-watson/text-to-speech/v1')
const { IamAuthenticator } = require('ibm-watson/auth')
const AWS = require('aws-sdk')
const { randomUUID } = require('crypto')
import { requireAuth } from '@clerk/nextjs/api'

module.exports = requireAuth(async (req, res) => {
  try {
    const s3 = new AWS.S3({
      accessKeyId: process.env.AWS_ACCESS_KEY,
      secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY
    })

    const textToSpeech = new TextToSpeechV1({
      authenticator: new IamAuthenticator({
        apikey: process.env.IBM_API_KEY
      }),
      serviceUrl: process.env.IBM_SERVICE_URL
    })

    const uuid = randomUUID()

    const { echoTitle, chapterTitle, chapterText } = req.body

    const synthesizeParams = {
      text: chapterText,
      accept: 'audio/mp3',
      voice: 'en-US_KevinV3Voice'
    }

    textToSpeech
      .synthesize(synthesizeParams)
      .then(buffer => {
        const s3Params = {
          Bucket: 'waveforms/audioform',
          Key: `${uuid}.mp3`,
          Body: buffer.result,
          ContentType: 'audio/mp3',
          ACL: 'public-read'
        }

        console.log(buffer.result)
        console.log(s3Params)

        s3.upload(s3Params, function (s3Err, data) {
          if (s3Err) throw s3Err
          console.log(`File uploaded successfully at ${data.Location}`)
        })
      })
      .catch(err => {
        console.log('error:', err)
      })

    const dbs = await client.query(
      q.Create(q.Collection('audioform'), {
        data: {
          title: echoTitle,
          published: 2022,
          leadAuthor: 'winter',
          user: req.session.userId,
          authors: 1,
          playTime: 83,
          chapters: 1,
          gpt3Description: '',
          likes: 20,
          image:
            'https://waveforms.s3.us-east-2.amazonaws.com/images/Mars.jpeg',
          trackURL: `https://waveforms.s3.us-east-2.amazonaws.com/audioform/${uuid}.mp3`,
          albumTracks: [
            {
              title: chapterTitle,
              text: chapterText,
              trackURL: `https://waveforms.s3.us-east-2.amazonaws.com/audioform/${uuid}.mp3`
            }
          ]
        }
      })
    )
    res.status(200).json(dbs.data)
  } catch (e) {
    res.status(500).json({ error: e.message })
  }
})

共有1个答案

濮阳鸿卓
2023-03-14

假设异步片段是按顺序执行的,则将其替换为类似这样的内容。

try {
  // code removed here for clarity
  const buffer = await textToSpeech.synthesize(synthesizeParams);

  const s3Params = {
    Bucket: 'waveforms/audioform',
    Key: `${uuid}.mp3`,
    Body: buffer.result,
    ContentType: 'audio/mp3',
    ACL: 'public-read'
  }

  await s3.upload(s3Params).promise();

  const dbs = await client.query(...);

  res.status(200).json(dbs.data);
} catch (e) {
  res.status(500).json({ error: e.message });
}
 类似资料:
  • 我一直在尝试使用S3.Object.put()方法以编程方式将SNS消息上载到S3 bucket,如下所示: 这不起作用,所以我尝试了以下方法,尝试将一个对象上传到一个特定的S3 bucket。 然而,这两种方法都在默默地失败。我没有收到任何访问拒绝、错误消息等,但我也没有将我的消息上传到bucket。我不确定每次调用函数都会发生什么,希望能为那些通过编程成功地将文件上传到bucket的人提供指导

  • 问题内容: 我创建了一个pong克隆,当发生碰撞时,我想添加一些声音效果。我的问题是,考虑到整个应用程序只有90行代码,我发现的每个有关合成声音的示例都需要约30行代码。我正在寻找一种更简单的方法。有没有简单的方法来创建不同音调的提示音?持续时间无所谓。我只想要一系列不同音调的蜂鸣声。 问题答案: 这是从Java Sound 提取(并简化)的一个小示例-示例:生成音频的代码

  • 我需要任何帮助与融合的monaco-editor在Angular 5应用程序。所有工作在开发模式,但在生产失败。我从loader.js收到错误。我正在使用Angular Cli和ngx-monaco-editor npm-package。包存储库-https://github.com/atularen/ngx-monaco-editor 我的一些代码: package.json: 生产错误

  • 我正在尝试使用 AWS PHP 开发工具包将一个 30 GB 的文件上传到亚马逊 S3。 它适用于最大7GB的文件。上传30 GB文件时,脚本运行约2小时后,我收到以下错误: 将部件上载到多部件上载时发生异常。以下部分出错:-第5部分:在上执行“UploadPart”时出错https://s3.amazonaws.com/Server3-27-SEP-2015/S3_www_1443369605.

  • 问题内容: 我正在通过jenkins部署Ember CLI应用程序,并使用nginx发布它。这是通过詹金斯构建脚本: nginx的配置只是引导到。效果很好,但是当我转到页面时,该页面为空白,并且在控制台中显示以下输出: 我猜这两个错误是相关的,但我不知道是什么导致了它们。我曾尝试这个答案似乎是一个类似的问题,但它并没有为我工作。一切在我的开发环境中都可以正常工作,并且在里面我看不到任何可疑的东西。