AWS S3-策略条件失败-eq密钥

时间:2018-08-09 01:49:30

标签: html node.js amazon-web-services amazon-s3

我正在从网站上将文件上传到s3。我从使用aws sdk的nodejs服务器中获取了所有需要的信息。我的问题是它生成了一个密钥,必须在我的表单中使用它,如下所示:

   <input type="hidden" name="key" value="xxx" /><br />

它可以工作,但是我上传的每个文件都具有“ key”的名称。如果我将其更改为这样:

   <input type="hidden" name="key" value="xxx/name.jpg" /><br />

它给我一个错误:

Invalid according to Policy: Policy Condition failed: ["eq", "$key", "xxx"]

以下是我制定政策的条件:

Conditions: [
        ['starts-with', '$key', ''],
        ["starts-with", "$Content-Type", "image/"],
        {"x-amz-server-side-encryption": "AES256"}
      ]

如何设置文件名?

1 个答案:

答案 0 :(得分:0)

我解决了。问题是在传递此函数的参数对象中:

s3.createPresignedPost(params, function(err, data)

我有参数字段,其中包含键:

  Fields: {
    key: key,
  },

只需删除它即可解决问题