我想使用AWS Lambda( NodeJs )将一个S3存储桶的所有内容复制到另一个S3存储桶(在同一帐户中)。
现在,我要做的是列出源存储桶中的内容,然后将其复制到目标存储桶中。
是否有更好的方法来复制所有内容? 简而言之,我想要一个重复的存储桶。
我在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!');
});
}
});
答案 0 :(得分:4)
AWS Lambda似乎不适合此处的工作。如果副本花费的时间超过了Lambda的最大运行时间,该怎么办?您可以编写一些内容以获取所有对象的列表,然后为每个对象触发一次Lambda函数,但这似乎有些过分。
如何运行一次plugins {
`java-library`
`maven-publish`
}
tasks.register<Jar>("sourcesJar") {
from(sourceSets["main"].allJava)
classifier = "sources"
}
tasks.register<Jar>("javadocJar") {
from(tasks["javadoc"])
classifier = "javadoc"
}
command以将一个存储桶的内容同步到另一个存储桶,然后使用AWS S3跨区域复制配置存储桶以自动复制添加的任何新对象将来有钱吗?