Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
aws sdk for javascript是否支持多部分;下载「;从S3开始?_Javascript_Amazon S3_Aws Sdk - Fatal编程技术网

aws sdk for javascript是否支持多部分;下载「;从S3开始?

aws sdk for javascript是否支持多部分;下载「;从S3开始?,javascript,amazon-s3,aws-sdk,Javascript,Amazon S3,Aws Sdk,我需要使用aws sdk js从S3存储桶下载大量图像 现在我通过调用s3.getObject(params,function(err,data)。在循环中为列表中的每个文件调用 除了在aws sdk js中逐个下载文件之外,还有其他更快、更高效的方法下载文件吗?基本上,您希望同步s3存储桶上的目录 您可以从aws CLI或s3cmd CLI使用 如果您想使用aws sdk js,API中没有同步方法,幸运的是,许多人已经实现了这一功能 例如,具有这样的功能 var params = { l

我需要使用aws sdk js
从S3存储桶下载大量图像

现在我通过调用
s3.getObject(params,function(err,data)
。在循环中为列表中的每个文件调用


除了在
aws sdk js
中逐个下载文件之外,还有其他更快、更高效的方法下载文件吗?

基本上,您希望同步s3存储桶上的目录

您可以从aws CLI或s3cmd CLI使用

如果您想使用aws sdk js,API中没有同步方法,幸运的是,许多人已经实现了这一功能

例如,具有这样的功能

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");
});

基本上,您希望同步s3存储桶上的目录

您可以从aws CLI或s3cmd CLI使用

如果您想使用aws sdk js,API中没有同步方法,幸运的是,许多人已经实现了这一功能

例如,具有这样的功能

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");
});

您可以使用Node 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 
    });
资料来源:

要设置s3fs,请查看下面的链接,它非常容易使用:


您可以使用Node 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 
    });
资料来源:

要设置s3fs,请查看下面的链接,它非常容易使用:


谢谢,我真的很想根据通过web应用程序提供的用户输入,从s3存储桶下载一些选定的文件集。到目前为止,我正在考虑使用lambda函数从s3存储桶返回预签名的URL集,而不是直接从web应用程序下载文件,这是由于某些原因安全问题。顺便说一句,希望可以使用您提供的代码片段从s3下载数据?是的,您可以使用剪贴下载,只需将
uploadDir
更改为
downloadDir
谢谢,我真的很想根据用户通过web应用程序提供的输入,从s3存储桶下载一些选定的文件集现在,由于一些安全问题,我正在考虑使用lambda函数从s3 bucket返回一组预先签名的URL,而不是直接从web应用程序下载文件。顺便说一句,希望可以使用您提供的代码片段从s3下载数据?是的,您可以使用剪断的to下载,只需将
uploadDir
更改为
downloadDir