Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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
Node.js 将S3 bucket的内容复制到另一个bucket |节点JS_Node.js_Amazon Web Services_Amazon S3 - Fatal编程技术网

Node.js 将S3 bucket的内容复制到另一个bucket |节点JS

Node.js 将S3 bucket的内容复制到另一个bucket |节点JS,node.js,amazon-web-services,amazon-s3,Node.js,Amazon Web Services,Amazon S3,我想使用AWS Lambda(NodeJs)将一个S3 bucket的所有内容复制到另一个S3 bucket(在同一个帐户中) 现在,我要做的是列出源bucket的内容,然后将它们复制到目标bucket中 有没有更好的方法来复制所有内容?简言之,我想要一个复制桶 我在NodeJs中的代码是: s3.listObjects(sourceBucketParams, function(err, data) { if (err) { console.log(

我想使用AWS Lambda(NodeJs)将一个S3 bucket的所有内容复制到另一个S3 bucket(在同一个帐户中)

现在,我要做的是列出源bucket的内容,然后将它们复制到目标bucket中

有没有更好的方法来复制所有内容?简言之,我想要一个复制桶

我在NodeJs中的代码是:

    s3.listObjects(sourceBucketParams, function(err, data) {

        if (err) {
          console.log("Error while copying files: ", err);
        }

        if (data === null || data === undefined) {
            callback(null, 'All done!');
        }

        if (data.Contents.length) {
            async.each(data.Contents, function(file, cb) {

                var params = {
                    CopySource: sourceBucket + '/' + file.Key,
                    Bucket: destBucketName,
                    Key: file.Key,
                    ACL: 'public-read'
                };
                s3.copyObject(params, function(copyErr, copyData){
                       if (copyErr) {
                            console.log("Error: " + copyErr);
                         }
                     }
                 );
                 callback(null, 'All done!');
            });
        }
    });

AWS Lambda似乎不是适合这项工作的工具。如果复制所需时间超过最大Lambda运行时间,该怎么办?您可以编写一些东西来获取所有对象的列表,然后为每个对象触发Lambda函数一次,但这似乎有些过分


运行一次性的
aws s3 sync
将一个存储桶的内容同步到另一个存储桶,然后使用aws s3跨区域复制配置存储桶,以便将来自动复制添加到存储桶中的任何新对象,怎么样?

aws Lambda似乎不是适合此作业的工具。如果复制所需时间超过最大Lambda运行时间,该怎么办?您可以编写一些东西来获取所有对象的列表,然后为每个对象触发Lambda函数一次,但这似乎有些过分

运行一次性
aws s3 sync
将一个存储桶的内容同步到另一个存储桶,然后使用aws s3跨区域复制配置存储桶,以便将来自动复制添加到存储桶中的任何新对象,怎么样