如何使用最新版本的文件创建新文件夹,而无需为我在 Amazon 中的 S3 存储桶取下旧文件夹



最近我创建了一个函数,该函数将包含数据库文件的文件夹发送到我的 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

最新更新