gpt4 book ai didi

angularjs - Angular 将文件上传到 AWS S3 错误 412 PreconditionFailed

转载 作者:行者123 更新时间:2023-12-03 06:57:03 25 4
gpt4 key购买 nike

尝试使用 Angular 将文件上传到 AWS S3 时遇到问题。这是错误结果:

<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>PreconditionFailed</Code>
<Message>At least one of the pre-conditions you specified did not hold</Message>
<Condition>Bucket POST must be of the enclosure-type multipart/form-data</Condition>
<RequestId>A951A5170520EC7C</RequestId>
<HostId>geepsSG0zcsNjTRux85V62EARw3E6HWfXWdckd/Uq0Zja+USfsQM7Myi2T3SqdkBcNsAoGF5RVw=</HostId>
</Error>

我的 Angular 代码:

// Handle file input change event.
fileIn.on('change', function ( e ) {
if ( this.files.length > 0 ) {
// Get the selected file.
var file = this.files[ 0 ];

// Get the S3 Policy and Signature.
$http({
method : 'GET',
url : 'http://localhost:8091',
params : {
file : file.name,
type : file.type
}
}).then(function ( res ) {
// Upload file
$http({
url : 'https://my-bucket.s3.amazonaws.com/',
method : 'POST',
data : {
AWSAccessKeyId : res.data.access,
policy : res.data.policy,
signature : res.data.signature,

file : file,
filename : file.name,
key : file.name,

acl : 'public-read',
"Content-Type" : file.type != '' ? file.type : 'application/octet-stream',
}
}).then(uploadSuccess, uploadFailed, uploadProgress);
}, function ( err ) {
AppLogger.toast('error', 'Critical Error!', err.data, {
type : 'json',
code : err.data.code
});
});
}
});

我尝试使用 ng-file-upload 但出现了不同的错误。

为什么会发生该错误以及如何解决该错误?感谢您的帮助!

最佳答案

您的错误是“POST 必须是附件类型的 multipart/form-data”。看起来 file.type 不是 multipart/form-data。

我建议在 $http POST 之上,console.log 文件类型。或者只是将内容类型更改为 multipart/form-data。您不希望它是用于二进制文件的八位字节流。

关于angularjs - Angular 将文件上传到 AWS S3 错误 412 PreconditionFailed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34879392/

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