【问题标题】:Amazon AWS SDK MediaConvert is not a constructorAmazon AWS SDK MediaConvert 不是构造函数
【发布时间】:2019-02-06 01:06:02
【问题描述】:

我正在使用从 NPM 安装的 Amazon AWS 开发工具包创建一个打字稿应用程序。我可以使用 AWS.S3 对象进行调用,但无法使用 AWS.MediaConvert:

var endpointPromise = new AWS.MediaConvert({apiVersion: '2017-08-29'})
    .describeEndpoints(params)
    .promise();

我在运行时收到的错误是“TypeError:AWS.MediaConvert 不是构造函数”。我可以检查 AWS 对象并且可以看到很多属性,但 MediaConvert 不是其中之一。

我认为这是因为 npm 上的包是完整 SDK 的子集(但它具有 MediaConvert 的打字稿定义)。是否可以从 npm 获得完整的 SDK,或者必须通过 https://sdk.amazonaws.com/builder/js/ 构建自己的 SDK 并将其嵌入到我的应用中?

它不会有打字稿定义,这会使开发更加困难。我可以包含 npm 包和下载的包而不搞砸吗?

【问题讨论】:

    标签: javascript typescript npm aws-sdk aws-sdk-js


    【解决方案1】:

    试试下面的sn-p,希望对你有帮助:

    import * as AWS from 'aws-sdk';
    const mediaAWS = async function()
    {
        try
        {
            const params = {};
            const media: AWS.MediaConvert = new AWS.MediaConvert({apiVersion: '2017-08-29'})
            const response: AWS.MediaConvert.DescribeEndpointsResponse = await media.describeEndpoints(params).promise();
        }
        catch (ex)
        {
            console.error(ex);
        }
    }
    

    【讨论】:

    • 抱歉,这无助于解决问题。我发现如果使用: import MediaConvert from 'aws-sdk/clients/mediaconvert' 那么它确实有效,但使用 import * from 'aws-sdk' 则不行。这很奇怪。我怀疑这可能是与 webpack 相关的问题。
    • 你尝试过类似 es6 的语法吗: const AWS = require('aws-sdk'); ?你能分享你的配置文件吗?
    • es6 语法也不起作用。我会看看我是否可以创建一个最小的设置来重现这个问题。
    猜你喜欢
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 2023-02-08
    • 2023-03-09
    • 2022-11-29
    • 2013-12-25
    相关资源
    最近更新 更多