aws-sdk获取文件信息

我正在尝试使用aws-sdk节点模块从我的Amazon S3 server上的文件获取文件信息。

我想要得到的是文件名,文件types和大小。

我已经尝试了下面的方法,但没有运气:

 s3.headObject(params, function (err, data) { if (err) { console.log(err, err.stack) } else { d.resolve(data); } }); 

 s3.getObject(params, function (err, data) { if (err) { console.log(err, err.stack) } else { d.resolve(data); } }); 

通过他们的文档看,我似乎无法find任何其他方法,会给我我需要的信息。

所以我的问题是如何获得上述信息?

以下是获取存储桶中所有对象的文件名,大小和内容types的代码。

  • 更改存储桶名称

  • 相应地从config.json加载您的访问密钥

码:-

 var AWS = require('aws-sdk'); // Load credentials and set region from JSON file AWS.config.loadFromPath('./config.json'); // Create S3 service object s3 = new AWS.S3({ apiVersion: '2006-03-01' }); var bucketName = 'yourBucketName'; var params = { Bucket: bucketName }; var headParams = { Bucket: bucketName }; listAllKeys(); function listAllKeys() { s3.listObjectsV2(params, function (err, data) { if (err) { console.log(err, err.stack); // an error occurred } else { var contents = data.Contents; contents.forEach(function (content) { //console.log(JSON.stringify(content)); headParams["Key"] = content.Key; s3.headObject(headParams, function (err, headObjectData) { if (err) { console.log(err, err.stack); } else { console.log("1. File name :" + content.Key + ";" + " 2. File size :" + content.Size + ";" + " 3. Content-Type :" + headObjectData.ContentType); } }); }); if (data.IsTruncated) { params.ContinuationToken = data.NextContinuationToken; console.log("get further list..."); listAllKeys(); } } }); } 

示例输出: –

 1. File name :index.html; 2. File size :48; 3. Content-Type :text/html