前端文件传到aws s3_如何将大文件上传到AWS S3
时间: 2024-02-22 19:01:05 浏览: 195
要将大文件上传到AWS S3,可以使用AWS提供的multipart上传方法。这个方法允许你将文件分成多个部分来上传,以便在网络不稳定的情况下保证上传的可靠性。以下是一个简单的Node.js示例代码:
```javascript
const AWS = require('aws-sdk');
const fs = require('fs');
// AWS S3配置
const s3 = new AWS.S3({
accessKeyId: 'your_accessKeyId',
secretAccessKey: 'your_secretAccessKey'
});
// 文件上传配置
const uploadParams = {
Bucket: 'your_bucket_name',
Key: 'your_file_name',
Body: '',
ContentType: 'your_content_type'
};
// 分块上传文件
const fileStream = fs.createReadStream('your_file_path');
fileStream.on('error', function(err) {
console.log('Error:', err);
});
uploadParams.Body = fileStream;
const multipartUpload = new AWS.S3.ManagedUpload({
params: uploadParams,
partSize: 5 * 1024 * 1024, // 分块大小,单位:字节
queueSize: 1 // 并发上传文件数量
});
multipartUpload.on('httpUploadProgress', function(progress) {
console.log('Progress:', progress);
});
multipartUpload.promise().then(function(data) {
console.log('Success:', data);
}).catch(function(err) {
console.log('Error:', err);
});
```
在上面的代码中,我们使用AWS SDK来创建S3对象,并设置了访问密钥等参数。接着,我们设置了文件上传的配置参数,包括Bucket、Key、Body、ContentType等。最后,我们使用ManagedUpload类实现将文件分块上传到S3的功能,分块大小和并发上传文件数量可以根据实际需求进行调整。在上传过程中,我们可以通过httpUploadProgress事件获取上传进度信息。最后,我们使用promise()方法来等待文件上传完成,并处理上传成功或失败的结果。
阅读全文