Angularjs Amazon S3无效参数错误代码

Angularjs Amazon S3无效参数错误代码,angularjs,amazon-web-services,amazon-s3,ng-file-upload,Angularjs,Amazon Web Services,Amazon S3,Ng File Upload,我正试图上传一个文件图像到我的AmazonS3存储桶,但一直收到一个400错误的请求。在挖掘过程中,我发现错误代码是无效的参数,但我不知道为什么我一直得到错误 controller.js Upload.upload({ url: url, method: 'POST', fields : { key: imageURI.name, AWSAcces

我正试图上传一个文件图像到我的AmazonS3存储桶,但一直收到一个400错误的请求。在挖掘过程中,我发现错误代码是无效的参数,但我不知道为什么我一直得到错误

controller.js

 Upload.upload({
              url: url,
              method: 'POST',
              fields : {
                key: imageURI.name,
                AWSAccessKeyId: key,
                acl: 'public-read',
                policy: policy,
                signature: signature, 
                "Content-Type": imageURI.type != '' ? imageURI.type : 'application/octet-stream',
                filename: imageURI.name
              },
              file: imageURI,
            }).success(function(data, status, headers, config) {
                console.log(data);
                console.log(headers);
            }).error(function (data, status, headers, config) {

            });
cors配置

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>http://localhost:8100</AllowedOrigin>
        <AllowedOrigin>http://staging.com.my</AllowedOrigin>
        <AllowedOrigin>http://partners.com.my</AllowedOrigin>
        <AllowedMethod>PUT</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
感谢您的帮助


感谢S3亚马逊文件夹中的CORS配置

请检查并查看发送到S3的标题中的内容, 您正在发送标题中的“内容类型”。包括在cors配置中。检查一下这个样品

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Authorization</AllowedHeader>
        <AllowedHeader>Content-Type</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

*
邮递
得到
放
删除
3000
授权
内容类型

S3 Amazon文件夹中的CORS配置

请检查并查看发送到S3的标题中的内容, 您正在发送标题中的“内容类型”。包括在cors配置中。检查一下这个样品

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Authorization</AllowedHeader>
        <AllowedHeader>Content-Type</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

*
邮递
得到
放
删除
3000
授权
内容类型

@Katana24试试这个。有一种可能性是,在您的标题中,正在发送授权值,因此您必须删除该值。有时这样做后,它仍然会给你一个错误,所以你分配给未定义。希望这对你有用,如果有用的话,把它标记为答案。干杯

          Upload.upload({
            url: "https://partners-mobile-app.s3.amazonaws.com/", //S3 upload url including bucket name
            method: 'POST',
            transformRequest: function (data, headersGetter) {
             //Headers change here
              var headers = headersGetter();
              delete headers['Authorization'];
              return data;
            },
            headers: {
              'Authorization': undefined
            },
            fields : {
                key: imageURI.name,
                AWSAccessKeyId: key,
                acl: 'public-read',
                policy: policy,
                signature: signature, 
                "Content-Type": imageURI.type != '' ? imageURI.type : 'application/octet-stream',
                filename: imageURI.name
              },
              file: imageURI,
            }).success(function(data, status, headers, config) {
                console.log(data);
                console.log(headers);
            }).error(function (data, status, headers, config) {

          });

@Katana24试试这个。有一种可能性是,在您的标题中,正在发送授权值,因此您必须删除该值。有时这样做后,它仍然会给你一个错误,所以你分配给未定义。希望这对你有用,如果有用的话,把它标记为答案。干杯

          Upload.upload({
            url: "https://partners-mobile-app.s3.amazonaws.com/", //S3 upload url including bucket name
            method: 'POST',
            transformRequest: function (data, headersGetter) {
             //Headers change here
              var headers = headersGetter();
              delete headers['Authorization'];
              return data;
            },
            headers: {
              'Authorization': undefined
            },
            fields : {
                key: imageURI.name,
                AWSAccessKeyId: key,
                acl: 'public-read',
                policy: policy,
                signature: signature, 
                "Content-Type": imageURI.type != '' ? imageURI.type : 'application/octet-stream',
                filename: imageURI.name
              },
              file: imageURI,
            }).success(function(data, status, headers, config) {
                console.log(data);
                console.log(headers);
            }).error(function (data, status, headers, config) {

          });

请捕获响应正文并将其添加到问题中。@Michael sqlbot在错误中添加report@KingsleySimon你把这个修好了吗?问题是什么?@Katana24检查jst发布的答案请捕获答案正文并将其添加到问题中。@Michael sqlbot在错误中添加report@KingsleySimon你把这个修好了吗?问题是什么?@Katana24检查我jst发布的答案你也在Github上发布这个问题吗?我想我在那里看到了同样的代码。不,这对我没有帮助,这表明这不是头球问题。谢谢你也在Github上发布了这个问题吗?我想我在那里看到了同样的代码。不,这对我没有帮助,这表明这不是头球问题。不管怎样,谢谢你