Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS S3多部分上载在达到12MB加载数据时重新启动_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services AWS S3多部分上载在达到12MB加载数据时重新启动

Amazon web services AWS S3多部分上载在达到12MB加载数据时重新启动,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我正努力在angular应用程序中使用AWS S3 Multipart上传文件。上载开始,但在达到12 MB加载数据后重新启动 日志: Object {loaded: 12582912, total: 91015730, part: 3, key: "IMG_2973.MOV"} postVideo.js:46 14% done postVideo.js:47 Object {loaded: 12582912, total: 91015730, part: 4, key: "IMG_2973.M

我正努力在angular应用程序中使用AWS S3 Multipart上传文件。上载开始,但在达到12 MB加载数据后重新启动

日志

Object {loaded: 12582912, total: 91015730, part: 3, key: "IMG_2973.MOV"}
postVideo.js:46 14% done
postVideo.js:47 Object {loaded: 12582912, total: 91015730, part: 4, key: "IMG_2973.MOV"}
postVideo.js:46 8% done
postVideo.js:47 Object {loaded: 7684096, total: 91015730, part: 2, key: "IMG_2973.MOV"}
postVideo.js:46 7% done
postVideo.js:47 Object {loaded: 6078464, total: 91015730, part: 4, key: "IMG_2973.MOV"}
postVideo.js:46 4% done
postVideo.js:47 Object {loaded: 3850240, total: 91015730, part: 3, key: "IMG_2973.MOV"}
postVideo.js:46 1% done
Object {loaded: 589824, total: 91015730, part: 1, key: "IMG_2973.MOV"}
postVideo.js:46 1% done
postVideo.js:47 Object {loaded: 622592, total: 91015730, part: 4, key: "IMG_2973.MOV"}
postVideo.js:46 1% done
postVideo.js:47 Object {loaded: 655360, total: 91015730, part: 3, key: "IMG_2973.MOV"}
postVideo.js:46 1% done
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
        <ExposeHeader>x-amz-request-id</ExposeHeader>
        <ExposeHeader>x-amz-id-2</ExposeHeader>
        <ExposeHeader>ETag</ExposeHeader>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
$scope.upload = function() {
    // Configure The S3 Object 
    $scope.creds = $publisherServices.getAwsCreds();
    AWS.config.update({ accessKeyId: $scope.creds.access_key, secretAccessKey: $scope.creds.secret_key });
    //AWS.config.region = 'sa-east-1';
    var bucket = new AWS.S3({apiVersion: '2006-03-01', params: {Bucket: $scope.creds.bucket}});

    if($scope.file) {
      var params = { Key: $scope.file.name, ContentType: $scope.file.type, Body: $scope.file};
      bucket.upload(params).
        on('httpUploadProgress', function(progress) {
          console.log(Math.round(progress.loaded / progress.total * 100) + '% done');
          console.log(progress);
        }).send(function(err, data) { console.log(err, data) });
    } else {
      // No File Selected
      alert('No File Selected');
    }
  }
应用程序重试几次,然后超时

我在这里迷路了,任何想法都会有帮助


CORS

Object {loaded: 12582912, total: 91015730, part: 3, key: "IMG_2973.MOV"}
postVideo.js:46 14% done
postVideo.js:47 Object {loaded: 12582912, total: 91015730, part: 4, key: "IMG_2973.MOV"}
postVideo.js:46 8% done
postVideo.js:47 Object {loaded: 7684096, total: 91015730, part: 2, key: "IMG_2973.MOV"}
postVideo.js:46 7% done
postVideo.js:47 Object {loaded: 6078464, total: 91015730, part: 4, key: "IMG_2973.MOV"}
postVideo.js:46 4% done
postVideo.js:47 Object {loaded: 3850240, total: 91015730, part: 3, key: "IMG_2973.MOV"}
postVideo.js:46 1% done
Object {loaded: 589824, total: 91015730, part: 1, key: "IMG_2973.MOV"}
postVideo.js:46 1% done
postVideo.js:47 Object {loaded: 622592, total: 91015730, part: 4, key: "IMG_2973.MOV"}
postVideo.js:46 1% done
postVideo.js:47 Object {loaded: 655360, total: 91015730, part: 3, key: "IMG_2973.MOV"}
postVideo.js:46 1% done
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
        <ExposeHeader>x-amz-request-id</ExposeHeader>
        <ExposeHeader>x-amz-id-2</ExposeHeader>
        <ExposeHeader>ETag</ExposeHeader>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
$scope.upload = function() {
    // Configure The S3 Object 
    $scope.creds = $publisherServices.getAwsCreds();
    AWS.config.update({ accessKeyId: $scope.creds.access_key, secretAccessKey: $scope.creds.secret_key });
    //AWS.config.region = 'sa-east-1';
    var bucket = new AWS.S3({apiVersion: '2006-03-01', params: {Bucket: $scope.creds.bucket}});

    if($scope.file) {
      var params = { Key: $scope.file.name, ContentType: $scope.file.type, Body: $scope.file};
      bucket.upload(params).
        on('httpUploadProgress', function(progress) {
          console.log(Math.round(progress.loaded / progress.total * 100) + '% done');
          console.log(progress);
        }).send(function(err, data) { console.log(err, data) });
    } else {
      // No File Selected
      alert('No File Selected');
    }
  }

在中提供的帮助下,我能够解决这个问题。事实上,为零件预先配置了2分钟超时

要禁用它,只需设置httpOptions超时:

var bucket = new AWS.S3({
  apiVersion: '2006-03-01', 
  httpOptions: {timeout: 0}, 
  params: {Bucket: $scope.creds.bucket}
});

你能检查一下你的angular apps上传限制吗?这个配置设置在哪里?对不起,我忽略了这个问题。调用put_object()时,API本身不应有任何限制。这看起来像是公司防火墙/代理/负载平衡器限制文件上传的行为。这看起来像是网络问题。@mootmoot我可以直接从S3仪表板上传文件。所以我认为问题不在于我的网络。嗯,使用多部分上传是个好主意。S3 dashboard的客户端是一个Javaservlet,IMHO,使用多部分上传。