2017-01-24 5 views
0

ノードs3クライアント(https://github.com/andrewrk/node-s3-client#clientdownloaddirparams)を使用して、ディレクトリ全体をS3からローカルディレクトリに同期しています。ドキュメントを1としてダウンロードディレクトリで不正な操作が原因でノード-s3クライアントで障害が発生しました

次のように、私のコードは次のとおりです。

progress 0 0 0 
... 
progress 1740297 225583 5150000 
unable to download: { Error: EISDIR: illegal operation on a directory, open 'images/assets' 
    at Error (native) 
    errno: -21, 
    code: 'EISDIR', 
    syscall: 'open', 
    path: 'images/assets' } 

ディレクトリが実際に存在しない:

var s3 = require('s3');  
    var client = s3.createClient({ 
     s3Options: { 
      accessKeyId: Config.accessKeyId, 
      secretAccessKey: Config.secretAccessKey 
     } 
    }); 

    var downloader = client.downloadDir({ 
     localDir: 'images/assets', 
     deleteRemoved: true, 
     s3Params: { 
      Bucket: Config.bucket, 
      Prefix: Config.bucketFolder 
     } 
    }); 

    downloader.on('error', function(err) { 
     console.error("unable to download: ", err); 
    }); 

    downloader.on('progress', function() { 
     console.log("progress", downloader.progressMd5Amount, downloader.progressAmount, downloader.progressTotal); 
    }); 

    downloader.on('end', function(data) { 
     console.log("done downloading", data); 
    }); 

これは、同期やフォルダがダウンロードを開始しますが、結局これを返す開始します。私は、ディレクトリの場所、パスなどを移動しようとしましたが、何もトリックを行うようです。私はこのエラーを調査し、ファイルを開こうとしたときに、指定されたパスがディレクトリであることが判明しました。なぜこのs3クライアントがディレクトリの代わりにファイルを開こうとしているのか分かりません。どんな助けや助言も素晴らしいでしょう。ありがとう!

答えて

0

S3では、ファイルと同じ名前のディレクトリを作成できます。あなたが得ているエラーに基づいて、私はS3の中にimagesという名前のファイルとimagesという名前のフォルダがあると言います。これはファイルシステムでは不正ですがS3では無効です。

0

ダウンロード速度がこの問題を引き起こしていると判断しました。残念ながら、私は.5上下のネットワーク上にいました。私はちょうど25/10に切り替わりました。

関連する問題