'aws s3 presignedUrl file upload error condition eq key
i want to fileupload to s3 using createPresignedPost method
const signedUrl = s3.createPresignedPost({
Bucket: bucket,
Fields: {
key: prefix + key,
acl: "public-read-write",
success_action_status: "201",
},
Conditions: [
["content-length-range", 100, 104857600],
["starts-with", "$Content-Type", "image/"],
["eq", "$acl", "public-read-write"],
],
});
like this.
use variable filename likes /question/a5ec914f0fc247c4baa2d1b95acf3ddc/${filename}
my http form data is
key: /question/a5ec914f0fc247c4baa2d1b95acf3ddc/${filename}
acl: public-read-write
success_action_status: 201
bucket: MY BUCKET NAME/
X-Amz-Algorithm: AWS4-HMAC-SHA256
X-Amz-Credential: AKIAQ4UJBOTEG75TSNOF/20220411/ap-northeast-2/s3/aws4_request
X-Amz-Date: 20220411T065406Z
Policy: eyJleHBpcmF0aW9uIjoiMjAyMi0wNC0xMVQwNzo1NDowNloiLCJjb25kaXRpb25zIjpbWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsMTAwLDEwNDg1NzYwMF0sWyJzdGFydHMtd2l0aCIsIiRDb250ZW50LVR5cGUiLCJpbWFnZS8iXSxbImVxIiwiJGFjbCIsInB1YmxpYy1yZWFkLXdyaXRlIl0seyJrZXkiOiIvcXVlc3Rpb24vYTVlYzkxNGYwZmMyNDdjNGJhYTJkMWI5NWFjZjNkZGMvJHtmaWxlbmFtZX0ifSx7ImFjbCI6InB1YmxpYy1yZWFkLXdyaXRlIn0seyJzdWNjZXNzX2FjdGlvbl9zdGF0dXMiOiIyMDEifSx7ImJ1Y2tldCI6ImRldi1waGlsaWNhci1wdWJsaWMvIn0seyJYLUFtei1BbGdvcml0aG0iOiJBV1M0LUhNQUMtU0hBMjU2In0seyJYLUFtei1DcmVkZW50aWFsIjoiQUtJQVE0VUpCT1RFRzc1VFNOT0YvMjAyMjA0MTEvYXAtbm9ydGhlYXN0LTIvczMvYXdzNF9yZXF1ZXN0In0seyJYLUFtei1EYXRlIjoiMjAyMjA0MTFUMDY1NDA2WiJ9XX0=
X-Amz-Signature: a233f9c320d5ce11f3a88aad94edae5623d7c37c6f398f3a37b123e8c1d8a754
Content-Type: image/jpeg
file: (binary)
my header is
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate, br
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
Connection: keep-alive
Content-Length: 55146
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryZsUKt9Gno1TDYAFS
Host: s3.ap-northeast-2.amazonaws.com
Origin: http://localhost:3000
Referer: http://localhost:3000/
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "macOS"
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36
amd response here
<Error>
<Code>
AccessDenied
</Code>
<Message>
Invalid according to Policy: Policy Condition failed: ["eq", "$key", "/question/a5ec914f0fc247c4baa2d1b95acf3ddc/${filename}"]
</Message>
<RequestId>
G6A4KEMF4MAETSKA
</RequestId>
<HostId>
6ThDtr0TAhfUUyU220kdocjth179y/dAyLrliVxwp0A9RNoe/Z57uwO0cDHPk+WGOm0sz3hHaoY=
</HostId>
this error occured only using ${filename} variables.
i don'y use conditions ["eq", "$key", "/question/a5ec914f0fc247c4baa2d1b95acf3ddc/${filename}"] it. how can i solve this error?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
