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

S3通过API网关使用自定义endpoint预签名URL,MethodNotAllowed

皇甫智明
2023-03-14

我正在尝试为带有自定义endpoint的S3 bucket使用预签名的url。我似乎如此接近,但我不断得到一个方法不允许的错误。我就在这里。

var s3 = new AWS.S3({
    endpoint: 'custom.domain.com/upload',
    s3BucketEndpoint: true,
    signatureVersion: 'v4'
});

//...

s3.getSignedUrl('putObject', {
    ACL: 'bucket-owner-full-control',
    Bucket: process.env.S3_BUCKET_NAME,
    ContentType: "image/png",
    Key: asset.id + ".png"
};

此代码成功地返回一个url,该url似乎包含所有正确的查询参数、正确的键名,并且该url指向我的endpoint。但是,当尝试上载时,我收到以下错误:

MethodNotalLowed此资源不允许使用指定的方法。PutService[请求id在此][主机id在此]

如果我从S3配置中删除自定义endpoint声明,我将收到一个标准域前缀预签名的url,并且上传工作正常。

    null

谢谢你的帮助!

共有1个答案

乌和畅
2023-03-14

我找不到说明预签名URL支持代理(alt/定制域)的文档。IMO对来自API网关的AWS资源进行身份验证并授予请求访问权限的用例(无论您是否代理S3)是使用API网关授权器和lambda来允许请求承担具有AWS资源访问权限的IAM角色(在这种情况下,将对象放在S3桶上)

https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html

 类似资料:
  • 我们需要通过电子邮件共享aws s3预签名url。然而,生成的url非常长,在我们的例子中,bucket文件名是动态的,可以有很长的文件名。 有什么选项可用于生成aws s3预签名url与短名称,而不暴露这些参数的url X-Amz-算法,X-Amz-SignedHeaders,X-Amz-Expires,X-Amz-Credential,X-Amz-Signature 在为电子邮件生成消息并将其

  • 这里是我的node.js预签名URL的生成 那么我在URL生成或卷曲方面的问题在哪里呢?谢谢

  • 标题说明一切。这是我的代码; 我使用节点强大的文件。 成功上传后,url变量返回s3 url,类似以下内容; 下面是我的参数 我错过了什么?

  • AWS文件说, 私有API不支持自定义域名。 来源:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-apis.html 这到底是什么意思?我可以将自定义域名附加到私有API。 然而,我面临着SSL证书的问题。

  • 我试图使用S3预签名的PUT url执行文档上传。我使用java AWSSDK(GeneratePresignedUrlRequest.java)生成url。此url生成代码位于AWS API网关后面的lambda函数中。 然而,当我在Postman中复制生成的url时,我遇到了以下错误 生成的url是“https:// 关于在生成url时需要更正的内容,有什么建议吗?

  • 您好,我正在尝试将客户的图片直接上传到reactjs web app中的amazon s3。我在后端生成预签名的url,如下所示 生成的url看起来像这样。 https://s3.us-west-1.amazonaws.com/churchapp-la/5/ab49d601efed40e0a6de0509ab78c091.png?ContentType=image/png 在客户端我这样做 当我点