gpt4 book ai didi

javascript - AWS S3 : MaxPostPreDataLengthExceeded Your POST request fields preceeding the upload file was too large

转载 作者:行者123 更新时间:2023-12-03 17:27:54 30 4
gpt4 key购买 nike

我正在尝试使用 AWS Javascript SDK 的 createPresignedPost 方法将文件上传到 AWS S3,
我有以下代码来生成签名的上传凭据 -

let AWS = require('aws-sdk');
let util = require('util');

let s3Client = new AWS.S3({
region: 'us-east-1'
});

let postSignedUrl = async () => {

try {
let postSigningParams = {
Expires: 60,
Bucket: "some-bucket-name,
Conditions: [["content-length-range", 100, 10000000]],
Fields: {
key: 'test/image.jpg'
}
}

let s3createPresignedPost = util.promisify(s3Client.createPresignedPost).bind(s3Client);
let postSignedUrl = await s3createPresignedPost(postSigningParams);

console.log('postSigningParams => ', postSignedUrl);
} catch (error) {
console.error(error);
}
}

postSignedUrl();

我收到如下凭证 -
{
"url": "https://s3.amazonaws.com/some-bucket-name",
"fields": {
"key": "test/image.jpg",
"bucket": "some-bucket-name",
"X-Amz-Algorithm": "AWS4-HMAC-SHA256",
"X-Amz-Credential": "some/credentials/us-east-1/s3/aws4_request",
"X-Amz-Date": "20191118T020945Z",
"X-Amz-Security-Token": "somesecuritytoken",
"Policy": "somepolicy",
"X-Amz-Signature": "somesignature"
}
}

但是,当我尝试使用 POSTMAN 工具使用上述凭据上传图像时,
我不能这样做。


enter image description here

我仔细检查了我的文件大小,它是 5 MB,
而我在创建签名 url 时设置的范围在 100 到 10000000 字节之间

引用资料 -
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#createPresignedPost-property
https://blog.bigbinary.com/2018/09/04/uploading-files-directly-to-s3-using-pre-signed-post-request.html
https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-post-example.html

最佳答案

您没有包含名为 file 的表单域在表单数据中包含 test.jpg 的内容。
使用 curl 执行所需操作的典型方法是:

curl -X POST -F Content-Type=$content_type -F key=$key \
-F acl=$acl -F Policy=$policy -F X-Amz-Credential=$credential \
-F X-Amz-Algorithm=$algorithm -F X-Amz-Storage-Class=$storage_class \
-F file=@$your_file_name $form_action
在上面的示例代码中,我使用 shell 表示法(即以 $ 为前缀)指定了所有变量(在 POST 之间实际上有所不同 :))。请注意,每当 curl看到以 @ 为前缀的字段值它使用字段值的其余部分作为文件名,并使用文件名的内容作为字段值。

关于javascript - AWS S3 : MaxPostPreDataLengthExceeded Your POST request fields preceeding the upload file was too large,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58907289/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com