Nodejs Sharp Image Resize and Upload to S3 超时

Posted

技术标签:

【中文标题】Nodejs Sharp Image Resize and Upload to S3 超时【英文标题】:Nodejs Sharp Image Resize and Upload to S3 gives timeout 【发布时间】:2018-11-12 22:26:14 【问题描述】:

下面的代码对我不起作用,它在将图像上传到 Amazon S3 时出现超时问题。

function resizeAndUploadToS3( imageData, imageHeader, bucket, key ) 
  return new Promise( ( resolve, reject ) => 
    sharp( imageData.data ).resize( 100, 100 ).toBuffer( function ( err, data ) 
      s3.putObject( 
        Bucket: bucket,
        Key: key,
        ACL: 'public-read',
        ContentType: imageHeader['content-type'],
        ContentLength: imageHeader['content-length'],
        Body: data
      , ( err, status ) => 
        console.log( 'err:::', err );
        console.log( 'status:::', status );
        resolve( status );
       );
     );
   );

我尝试使用以下代码将调整大小的图像保存到 本地 文件中,并且工作正常

sharp( imageData.data ).resize( 100, 100 ).toFile('test.jpg');

另外,我尝试上传图片而不调整到 S3,它工作正常。可能是什么问题?

【问题讨论】:

【参考方案1】:

我通过从上面的代码中删除给定的行来修复它。

ContentType: imageHeader['content-type'],
ContentLength: imageHeader['content-length'],

我认为 content-typecontent-length 的值在我的情况下是错误的。

【讨论】:

我认为只有 content-length 是罪魁祸首,就我而言,我删除了它并且它起作用了。

以上是关于Nodejs Sharp Image Resize and Upload to S3 超时的主要内容,如果未能解决你的问题,请参考以下文章

如何在nodejs中使用sharp调整图像大小然后使用multer上传

如何在nodejs中使用sharp调整图像大小然后使用multer上传

在 node.js 中使用Sharp压缩图像

Nodejs Sharp webp无损压缩

使用 Nodejs Sharp 模块时出错。模块解析失败:意外字符 '' (1: 0)

nodejs处理图片工具sharp