从s3压缩和下载文件无法在循环外运行

问题描述

我有这种方法,可以从s3提取数据并将其添加文件中以进行下载。 除非我将下载语句移到for循环外,否则该过程将正常进行。

此刻,我的程序将每个文件下载到其自己的zip文件中,应该立即将其全部下载。

  function Getobjects(ObjectKeys,ObjectBuckets) {
    var zip = new JSZip();
    var s3 = new AWS.S3();
    let Key = "";
    let Bucket = "";

    console.log("TAG-Getobjects: Below are the recieved props:");
    for (var i = 0; i < ObjectKeys.length; i++) {
      Key = ObjectKeys[i];
      Bucket = ObjectBuckets[i];
      console.log("Attempting to get object:",i,"from",ObjectBuckets[i],"where ",ObjectKeys[i]);

      s3.getobject(
        {
          Bucket: Bucket,Key: Key,},function (error,data) {
          if (error != null) {
            console.log("Failed to retrieve an object",error);
          } else {
            console.log("Following Object recieved");
            console.log(data.Body);
            zip.file(Key,data.Body);
            zip.generateAsync({ type: "blob" }).then(function (content) {
              saveAs(content,"example.zip");
            });
          }
        }
      );
    }
    // zip.generateAsync({ type: "blob" }).then(function (content) {
    //   saveAs(content,"example.zip");
    // }); I want this here,but it does not work
  }

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)