gpt4 book ai didi

node.js - 如何在单次上传操作中将大小大于 5mb 的文件上传到 AWS

转载 作者:太空宇宙 更新时间:2023-11-04 00:14:51 24 4
gpt4 key购买 nike

function uploadGuideMedia(req, res, next) {
if (!req.file && !req.body.id) {
return res.status(401).send({
status: 401,
data: "Upload a file with 'file' key"
});
}
db.query('SELECT * from guide_media where _id = $1', [req.body.id], function(err, guide) {
if (err) return next(err);
if (guide.rows.length == 0) {
return res.status(404).send({
status: 404,
data: "Guide_media not found"
})
} else {
let name = req.file.path + path.extname(req.file.originalname);
fs.renameSync(req.file.path, name);
req.file.path = name;
var s3bucket = new AWS.S3({
params: {
Bucket: 'mapery-v2'
}
});
fs.readFile(req.file.path, function(err, lq_file) {
s3bucket.createBucket(function() {
var params = {
Key: 'upload-v2/' + req.file.originalname,
Body: lq_file,
ContentType: req.file.mimetype,
ACL: 'public-read'
};
s3bucket.upload(params, function(err, aws_images) {
fs.unlink(req.file.path, function(err) {
db.query('UPDATE guide_media SET image_path = $1 WHERE _id = $2 RETURNING *', [aws_images.Location, req.body.id], function(err, guide_res) {
if (err) return next(err);
return res.status(200).send({
status: 'success',
data: guide_res.rows
});
});
});
})
})
})
}
});
}
我正在尝试将视频文件上传到 AWS,但是当文件大小大于 5mb 时,它会作为一部分上传(5mb 为 2 部分,10mb 为 3 部分)。但在这个 https://aws.amazon.com/s3/faqs/#How_much_data_can_I_store他们说我们可以在单次上传操作中上传最多 5GB 的数据。我有什么地方说错了吗?

最佳答案

分部分上传并不意味着您的文件将分多个部分存储在 S3 上。如果负载足够大,SDK 会同时分多个部分上传文件,以便在其中一个失败时可以分部分重试上传。默认情况下,SDK 使用 5MB 的 partSize。您可以使用以下代码将 partSize 设置为 10 MB。

var params = {Bucket: 'bucket', Key: 'key', Body: stream};
var options = {partSize: 10 * 1024 * 1024, queueSize: 1};
s3.upload(params, options, function(err, data) {
console.log(err, data);
});

编辑:链接到上传方法的文档。 http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property

关于node.js - 如何在单次上传操作中将大小大于 5mb 的文件上传到 AWS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47629932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com