最近我创建了一个函数,该函数将包含数据库文件的文件夹发送到我的 S3 存储桶,在 amazon(backup(。
我正在使用一个名为FindIt -> https://github.com/substack/node-findit 的软件包。我用它来列出我的文件,然后将它们发送到我的存储桶
这是我的函数:
finder.on('file', function (file, stat) {
var params = {
Bucket: 'bucket-test-test-my-company',
Key: file,
Body: fs.createWriteStream(file)
};
});
s3.putObject(params, function(err, res) {
if(err) {
console.log(err);
}
else {
console.log("Success");
}
callback(err);
});
工作正常,我的文件夹里面有备份文件正在发送。
这个文件每天都会发送,我不想更新,我wan'=t创建一个带有日期或其他东西的新文件夹以了解顺序。
我真的不知道该怎么做,请帮忙吗?也许是一些教程?
谢谢。
上传代码中的Key
是您希望对象位于存储桶内的路径。
您所要做的就是在上传之前在前面附加一个表示当前备份"路径"的字符串,例如backups/daily/2014-20-09/
到每个文件名的开头。
S3 中的文件夹不是真实的,因此不必创建它们...但是,如果您向每个键添加一个前缀字符串,并且该前缀包含/
斜杠,那么您的文件将在 S3 控制台中显示为位于文件夹中,如您所料。
请注意,前缀中不需要前导/
,但确实需要尾随。 只需构建字符串并将其添加到用于Key:
的值的开头即可。
或者,您可以在存储桶中启用版本控制。 当您"覆盖"一个文件时,该文件不会被删除 - 它只是成为文件的"先前版本",并且所有先前版本仍然可用,但是下载"文件"而不指定版本将检索最新版本。
http://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html