使用 Node.js 在 Amazon S3 中上传文件

File uploading in Amazon S3 with Node.js

我正在使用 aws-sdk 在 Amazon S3 上上传文件。它工作正常并正在上传文件,但我的问题是;上传到服务器后,它改变了文件名。例如,如果我上传 sample.jpg,并将其重命名为 b4c743c8a2332525.jpg。这是我的代码。

AWS.config.update({ 
    accessKeyId: key, 
    secretAccessKey: secret
});

var fileStream = fs.createReadStream(path);

fileStream.on('error', function (err) {
    if (err) { throw err; }
});

fileStream.on('open', function () {
    var s3 = new AWS.S3();
    s3.putObject({
        Bucket: bucket,
        Key: directory + file,
        Body: fileStream
    }, function (err) {
        if (err)
            res.send(err);
        fs.unlinkSync(path);
    });
});

上传文件到S3服务器后改文件名是否正常,或者有没有上传相同文件名的选项?谢谢。

S3 和 AWS SDK 都不会为您上传的内容选择任意文件名。名称由您自己的代码设置。

directory + file 设置为 S3 对象键时检查其值。您可能正在从您的浏览器上传 'sample.jpg'(因此该文件在您的本地磁盘上名为 sample.jpg),但 node.js 的临时文件名用于识别其磁盘上的文件可能使用像 b4c743c8a2332525.jpg.

这样的散列