使用NodeJS和AWS S3将损坏/截断的mp4上传到S3存储桶

格里吉尔

我正在使用fs.readFile读取大约700KB的本地mp4文件,并使用AWS开发工具包将文件加载到我的S3存储桶中。该过程有效,但文件已损坏,可能被截断了,因为S3上生成的文件大小仅为500KB左右。

我使用的代码适用于图像。只是不适用于mp4文件。这是我的代码:

fs.readFile(file_location, function (err, data) {
    if (err) { 
        console.log('fs error': err);
    } else {
        var base64data = new Buffer(data, 'binary');

        var params = {
            Bucket: config.settings.bucket, 
            Key: 'file.mp4', 
            Body: base64data,
            ContentEncoding: 'base64',
            ContentType: 'video/mp4'
        };

        s3.putObject(params, function(err, data) {
            if (err) { 
                console.log('Error putting object on S3: ', err); 
            } else { 
                console.log('Placed object on S3: ', object_key); 
            }  
        });
    }
});

我尝试从params对象中省略ContentEncoding和/或ContentType属性。

编辑:

因此,当我对fs.readFile返回的数据长度进行console.log记录时,结果总是很短。我也没有意识到我实际上也没有处理base64数据。因此,如果我在要求使用base64读取文件的地方使用以下代码,则fs.readFile中的data.length似乎正确,并且mp4文件显示在我的S3存储桶中,并且在浏览器中带有播放头(没来得及),但视频无法播放,而且视频是黑色的,因此它似乎仍然损坏。

fs.readFile(file_location, 'base64', function (err, data) {
    if (err) { 
        console.log('fs error': err);
    } else {
        var params = {
            Bucket: config.settings.bucket, 
            Key: 'file.mp4', 
            Body: data,
            ContentEncoding: 'base64',
            ContentType: 'video/mp4'
        };

        s3.putObject(params, function(err, data) {
            if (err) { 
                console.log('Error putting object on S3: ', err); 
            } else { 
                console.log('Placed object on S3: ', object_key); 
            }  
        });
    }
});
彼得·里昂

data从中获取变量readFile已经可以使用了。只需将其直接传递给即可Body: dataContentEncoding由于不发送base64数据,因此请完全删除参数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用NodeJS和AWS S3将损坏/截断的mp4上传到S3存储桶

来自分类Dev

nodejs将pdf上传到S3存储桶损坏的文件

来自分类Dev

使用Carrierwave上传到多个S3存储桶

来自分类Dev

使用Java AWS SDK将文件夹上传到S3存储桶

来自分类Dev

使用Boto3将文件上传到带前缀的S3存储桶

来自分类Dev

php laravel直接将文件上传到AWS S3存储桶

来自分类Dev

使用 PHP 将文件上传到 Amazon S3 存储桶 - 不使用 SDK

来自分类Dev

无法使用图片的直接网址将图片上传到S3存储桶

来自分类Dev

使用boto将csv文件上传到Amazon S3存储桶

来自分类Dev

通过使用分段上传API将小于5 MB的文件上传到AWS S3存储桶

来自分类Dev

如何使用boto3将Github上的文件上传到AWS S3存储桶?

来自分类Dev

如何使用Salesforce Apex将更大的文件(大于12 MB)上传到AWS s3存储桶

来自分类Dev

如何使用AWS CDK中的自定义资源将文件上传到S3存储桶

来自分类Dev

您尝试访问的存储桶必须使用指定的终结点进行寻址将文件上传到AWS S3

来自分类Dev

使用aws cli将S3对象URL上传到存储桶后,如何获取?

来自分类Dev

使用aws-sdk-java上传到S3存储桶时发生PermanentRedirect错误

来自分类Dev

使用作业队列上传到AWS S3存储桶

来自分类Dev

使用aws-sdk-java上传到S3存储桶时发生PermanentRedirect错误

来自分类Dev

NodeJs 将文件上传到 AWS S3 - 文件损坏

来自分类Dev

将 JSON 文件从 node.js 中的 aws-sdk 上传到 aws s3 存储桶

来自分类Dev

NodeJS Knox强大生成400,文件未上传到S3存储桶

来自分类Dev

更改已上传到AWS S3存储桶的多个文件的默认内容类型

来自分类Dev

AWS CodePiplene不会将文件上传到S3存储桶

来自分类Dev

如何将图像上传到AWS S3并获取图像文件的S3存储桶URL并一次保存到dynamodb-Android

来自分类Dev

使用预签名URL将mp3 / zip文件上传到AWS S3

来自分类Dev

如何使用带有node.js的s3 api将文件上传到Wasabi存储桶?

来自分类Dev

如何使用angular或javascript中的预签名URL将文件上传到S3存储桶

来自分类Dev

使用CollectionFS和cfs-s3流星包的AWS S3存储桶上传

来自分类Dev

使用CollectionFS和cfs-s3流星包的AWS S3存储桶上传

Related 相关文章

  1. 1

    使用NodeJS和AWS S3将损坏/截断的mp4上传到S3存储桶

  2. 2

    nodejs将pdf上传到S3存储桶损坏的文件

  3. 3

    使用Carrierwave上传到多个S3存储桶

  4. 4

    使用Java AWS SDK将文件夹上传到S3存储桶

  5. 5

    使用Boto3将文件上传到带前缀的S3存储桶

  6. 6

    php laravel直接将文件上传到AWS S3存储桶

  7. 7

    使用 PHP 将文件上传到 Amazon S3 存储桶 - 不使用 SDK

  8. 8

    无法使用图片的直接网址将图片上传到S3存储桶

  9. 9

    使用boto将csv文件上传到Amazon S3存储桶

  10. 10

    通过使用分段上传API将小于5 MB的文件上传到AWS S3存储桶

  11. 11

    如何使用boto3将Github上的文件上传到AWS S3存储桶?

  12. 12

    如何使用Salesforce Apex将更大的文件(大于12 MB)上传到AWS s3存储桶

  13. 13

    如何使用AWS CDK中的自定义资源将文件上传到S3存储桶

  14. 14

    您尝试访问的存储桶必须使用指定的终结点进行寻址将文件上传到AWS S3

  15. 15

    使用aws cli将S3对象URL上传到存储桶后,如何获取?

  16. 16

    使用aws-sdk-java上传到S3存储桶时发生PermanentRedirect错误

  17. 17

    使用作业队列上传到AWS S3存储桶

  18. 18

    使用aws-sdk-java上传到S3存储桶时发生PermanentRedirect错误

  19. 19

    NodeJs 将文件上传到 AWS S3 - 文件损坏

  20. 20

    将 JSON 文件从 node.js 中的 aws-sdk 上传到 aws s3 存储桶

  21. 21

    NodeJS Knox强大生成400,文件未上传到S3存储桶

  22. 22

    更改已上传到AWS S3存储桶的多个文件的默认内容类型

  23. 23

    AWS CodePiplene不会将文件上传到S3存储桶

  24. 24

    如何将图像上传到AWS S3并获取图像文件的S3存储桶URL并一次保存到dynamodb-Android

  25. 25

    使用预签名URL将mp3 / zip文件上传到AWS S3

  26. 26

    如何使用带有node.js的s3 api将文件上传到Wasabi存储桶?

  27. 27

    如何使用angular或javascript中的预签名URL将文件上传到S3存储桶

  28. 28

    使用CollectionFS和cfs-s3流星包的AWS S3存储桶上传

  29. 29

    使用CollectionFS和cfs-s3流星包的AWS S3存储桶上传

热门标签

归档