如何确定对象是否存在AWS S3 Node.JS sdk
我需要使用AWS SDK来检查文件是否存在。
这是我在做什么:
var params = { Bucket: config.get('s3bucket'), Key: path }; s3.getSignedUrl('getObject', params, callback);
有用。 问题是,当对象不存在时,callback(带有参数err和url)不会返回错误,当我尝试访问URL时,它会显示“NoSuchObject”。
当对象不存在时,这个getSignedUrl
方法不应该返回一个错误对象吗?
如何确定对象是否存在? 我真的需要对返回的url进行调用吗?
谢谢。
在创build签名的URL之前,您需要检查文件是否直接从存储桶中存在。 一种方法是通过请求HEAD元数据。
s3.headObject(params, function (err, metadata) { if (err && err.code === 'NotFound') { // Handle no object on cloud here } else { s3.getSignedUrl('getObject', params, callback); } });
像这样使用getObject
方法:
var params = { Bucket: config.get('s3bucket'), Key: path }; s3.getObject(params, function(err, data){ if(err) { console.log(err); }else { var signedURL = s3.getSignedUrl('getObject', params, callback); console.log(signedURL); } });
- AWS Step / Lambda – 在运行之间存储variables
- 使用强大的和(knox或aws-sdk)在Node.js上传文件到S3
- 有什么方法可以使用适用于Node.js的AWS开发工具包来检查S3存储桶中是否存在path?
- 如何从s3存储和检索dynamodb中的照片url?
- 如何使用nodejs在亚马逊S3上传图像并将其公开
- 错误:configuration文件丢失 – /nodeapp/node_modules/aws-sdk/lib/request.js:31
- 用NodeJS检索远程文件进行存储?
- 如何使用Node.js将文件直接上传到Amazon Cloud Front
- 使用aws-sdk使用nodejs将图像上传到s3