【发布时间】:2016-02-07 23:37:08
【问题描述】:
尝试使用启动分段上传的 AWS JS SDK 上传 mp4 文件,当我尝试在本地下载和播放时,我不断收到文件损坏错误。
我的代码要点:
-
使用参数启动分段上传:
const createMultipartUploadParams = { Bucket: bucketname, Key: fileHash.file_name, ContentType: 'video/mp4' // TODO: Change hardcode };
呼叫:
s3Instance.createMultipartUpload(createMultipartUploadParams, function(err, data) {
}
-
进行分块: 参数:
const s3ChunkingParams = { chunkSize, noOfIterations, lastChunk , UploadId: data.UploadId }
读取文件:
const reader = new FileReader();
reader.readAsArrayBuffer(file)
上传每个块:
reader.onloadend = function onloadend(){
console.log('onloadend');
const partUploadParams = {
Bucket: bucketname,
Key: file_name,
PartNumber: i, // Iterating over all parts
UploadId: s3ChunkingParams.UploadId,
Body: reader.result.slice(start, stop) // Chunking up the file
};
s3Instance.uploadPart(partUploadParams, function(err, data1) {
}
-
终于完成了multipartUpload:
s3Instance.completeMultipartUpload(completeMultipartParams, function(err, data)
我猜问题在于我是如何读取文件的,所以我尝试将内容编码为 base64,但这使得文件大小异常巨大。非常感谢任何帮助!
试过this too
【问题讨论】:
标签: javascript amazon-web-services file-upload reactjs aws-sdk