Amazon web services aws S3 bucket:从浏览器上载POST文件时出现内部服务器错误500

Amazon web services aws S3 bucket:从浏览器上载POST文件时出现内部服务器错误500,amazon-web-services,amazon-s3,aws-lambda,aws-cdk,Amazon Web Services,Amazon S3,Aws Lambda,Aws Cdk,我收到内部错误我们遇到内部错误。请重试。将POST表单数据上载到s3存储桶时 S3配置: const attachmentBucket = new Bucket(this, 'caS3Bucket', { bucketName: environmentName + '.caattachments', cors: [{ allowedMethods: [HttpMethods.GET, HttpMethods.POST], allowedOrigins: ['*'],

我收到
内部错误
我们遇到内部错误。请重试。
将POST表单数据上载到s3存储桶时

S3配置:

const attachmentBucket = new Bucket(this, 'caS3Bucket', {
  bucketName: environmentName + '.caattachments',
  cors: [{
    allowedMethods: [HttpMethods.GET, HttpMethods.POST],
    allowedOrigins: ['*'],
    allowedHeaders: ['*'],
    maxAge: 3000
  } as CorsRule]
} as BucketProps);
通过lambda预签名上载url:

const params = {
  Bucket: process.env.S3_BUCKET!.split(':')[5],
  Fields: {
    key: payload.path,
    acl: 'public-read'
  },
  Expires: 3600
};

const postData = await new Promise(resolve => {
  s3.createPresignedPost(params, (err, data) => {
    resolve(data);
  });
}) as AWS.S3.PresignedPost;

我将postData.fields中的所有参数与文件一起附加到输入表单中。是否有任何方法对此进行调试?

问题是表单缺少“策略”字段。我希望aws的错误更具描述性。最终工作表单字段如下所示:

const formData: FormData = new FormData();

formData.append('key', uploadData.fields.key);
formData.append('acl', uploadData.fields.acl);
formData.append('bucket', uploadData.fields.bucket);
formData.append('X-Amz-Algorithm', uploadData.fields.algorithm);
formData.append('X-Amz-Credential', uploadData.fields.credential);
formData.append('X-Amz-Date', uploadData.fields.date);
formData.append('X-Amz-Security-Token', uploadData.fields.token);
formData.append('Policy', uploadData.fields.policy);
formData.append('X-Amz-Signature', uploadData.fields.signature);
formData.append('file', file, file.name);