ノード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クライアントがディレクトリの代わりにファイルを開こうとしているのか分かりません。どんな助けや助言も素晴らしいでしょう。ありがとう!