如何确定对象是否存在AWS S3 Node.JS sdk

我需要使用AWS SDK检查文件是否存在。

这是我在做什么

var params = {
    Bucket: config.get('s3bucket'),Key: path
};

s3.getSignedUrl('getobject',params,callback);

有用。问题是当对象不存在时,回调(带有参数err和url)返回没有错误,当我尝试访问URL时,它表示“NoSuchObject”。

当对象不存在时,这个getSignedUrl方法不应该返回一个错误对象吗?

如何确定对象是否存在?我真的需要调用返回的URL吗?

谢谢。

解决方法

在创建签名的URL之前,您需要检查文件是否直接存在于存储桶中。一种方法是通过请求HEAD元数据。

s3.headobject(params,function (err,Metadata) {  
  if (err && err.code === 'NotFound') {  
    // Handle no object on cloud here  
  } else {  
    s3.getSignedUrl('getobject',callback);  
  }
});

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...