我需要使用aws-sdk-js从S3存储桶下载一些大型图像集。截至目前,我通过拨打s3.getObject(params, function (err, data)
来做到这一点。在我的列表中的每个文件的循环中?除了在aws-sdk-js中逐一下载文件之外,还有其他更快更有效的方法来下载文件吗?JavaScript的aws-sdk是否支持S3的多部分“下载”?
0
A
回答
1
基本上你将要同步的S3存储目录
你能如果你想使用AWS-SDK-JS没有同步使用来自AWS CLI aws s3 sync
或s3cmd put --recursive
从s3cmd CLI
方法从API,幸运的是,许多人已经提出了这个功能。
例如node-s3-client具有这样的功能
var params = {
localDir: "some/local/dir",
deleteRemoved: true, // default false, whether to remove s3 objects
// that have no corresponding local file.
s3Params: {
Bucket: "s3 bucket name",
Prefix: "some/remote/dir/",
// other options supported by putObject, except Body and ContentLength.
// See: http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putObject-property
},
};
var uploader = client.uploadDir(params);
uploader.on('error', function(err) {
console.error("unable to sync:", err.stack);
});
uploader.on('progress', function() {
console.log("progress", uploader.progressAmount, uploader.progressTotal);
});
uploader.on('end', function() {
console.log("done uploading");
});
1
可以使用节点JS s3fs模块,其提供类似于给FS模块的功能。要下载多个文件,我建议您使用简单易用的s3fs模块。您可以使用s3fs写您的文件在您的S3存储桶的目录,然后使用readdirp功能:
var fsImpl = new S3FS('test-bucket', options);
fsImpl.readdirp('test-folder').then(function(files) {
// Files contains a list of all of the files similar to [`fs.readdir(path, callback)`](http://nodejs.org/api/fs.html#fs_fs_readdir_path_callback) but with recursive contents
}, function(reason) {
// Something went wrong
});
来源:https://www.npmjs.com/package/s3fs
要设置s3fs看看下面的链接,这是很容易使用:
相关问题
- 1. Luracast Restler是否支持多部分URI?
- 2. gsutil是否支持aws s3的sigv4?
- 3. nanoc是否支持嵌套部分?
- 4. BitTorrent是否支持部分传输?
- 5. S3是否支持HTTP流水线?
- 6. Subversion是否支持分支的别名
- 7. JavaScript是否支持部分功能应用?
- 8. Satchmo的Authorize.net支付模块是否支持MasterCard部分授权?
- 9. django是否支持将你的模板分成几部分?
- 10. S3是否同步使用/支持分段上传?
- 11. QListWidget是否支持分组?
- 12. Grails是否支持分片?
- 13. Amazon S3是否支持多文件原子上传?
- 14. 是否有任何支持硒的Downless浏览器支持下载功能
- 15. PHP7是否支持多态?
- 16. v4l2是否支持多图?
- 17. PHP的HTTP类是否支持javascript?
- 18. 是否支持IE8 +下的hasAttribute()?
- 19. WinRT BackgroundTransfer是否支持可恢复下载的HTTP Content-Range?
- 20. 是否Amazon S3的基于浏览器的上传支持输入“多选项?
- 21. C#3.0是否支持部分属性的概念?
- 22. VS2010 SP1是否仅支持AVX指令集的一部分?
- 23. 能否支持git pull继续下载?
- 24. 在Jenkins中,多分支管道是否支持Git标记?
- 25. 子文件是否支持多个“分支”目录?
- 26. Google Closure是否支持JavaScript文件的多个“包”?
- 27. VoltDB是否完全支持多部分(或全局)事务中的ACID?
- 28. 高分表中是否有子分钻向下支持?
- 29. emrfs是否支持s3 url中的自定义查询参数?
- 30. CGAL是否支持多个对象的3D网格划分?
谢谢,我真的很想从S3存储下载一些选定的一组文件的基础上,通过一个Web应用程序给用户输入。截至目前,我正在考虑使用lambda函数的选项,该函数从s3存储区返回预先签名的一组URL,而不是直接从Web应用程序获取文件,这是由于一些安全问题。顺便说一句希望你可以使用你给出的代码片段从s3下载数据呢? –
是的,你可以使用剪切下载,只需将'uploadDir'更改为'downloadDir' –