微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何确定对象是否存在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);  
  }
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐