使用 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.
这样的散列
我正在使用 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.