問題タブ [ssh2-sftp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1290 参照

php - scandir/opendir は ssh2.sftp では動作しませんか?

次のコマンドを試してみると:

それは機能し、正しいコンテンツを取得します。しかし、リモートフォルダーのすべてのファイルを取得したいときはいつでも、ディレクトリを開くことができません。

scandirまたはopendirを試しました。これらの両方で、次のメッセージが表示されます。

何が間違っているのですか?いくつかのヒントは本当に役に立ちます。

よろしく

コンテキスト: PHP 7.0.32 を使用しており、ssh2.so は完全にインストールされています


更新:わかりました。プロバイダーの態度が悪いからだと思います。使い方:

関数ssh2_sftp_realpath + ' ./ ' でうまくいきます。

0 投票する
0 に答える
530 参照

sftp - SFTP 移動ファイルがイベントをトリガーしない

ファイルの準備ができたときに起動する SFTP サーバーといくつかのトリガーを設定しました。

完了する前に開始した場合、または接続でエラーが発生した場合は、最初にtmpフォルダーに書き込み (SFTP プロトコルを使用)、コピーしたらnewフォルダーに移動します。

1 つのフォルダー内のすべてのイベントを追跡し、もう 1 つのフォルダーを inotify で追跡しています。

tmp フォルダーにファイルを書き込むためのイベントは次のとおりです。

ファイルをあるフォルダーから別のフォルダーに移動すると、bash から次のことがわかりました。

MOVE_TOイベントがトリガーされます。tmp フォルダー内:

新しいフォルダーで:

ただし、SFTP を介して RENAME メソッドを使用してファイルを移動すると、移動しません。これらは、トリガーされたすべてのイベントです。

tmp フォルダー内:

新しいフォルダーで:

これは SFTP のプロトコルの一部ですか? sftp でファイルを移動して、実際に MOVED_TO イベントをトリガーすることは可能ですか?

これは、私が使用している sftp クライアントの実装です: https://github.com/mscdex/ssh2-streams/blob/55fd9c36b6dca8dbf0588a1d6f450b85c784dc72/lib/sftp.js

0 投票する
1 に答える
2971 参照

node.js - NodeJS: sftp サーバーから csv ファイルを読み取り、JSON に変換する

ssh2-sftp-client を使用して CSV ファイルを読み取り、ReadableStream を作成しています。次に、csvtojson ライブラリを使用して、この readableStream を Json に変換しようとしています。ただし、常に次のエラーが発生します。

TypeError: readStream.pipe は関数ではありません

これまでの私のコードは次のとおりです。

私が両方のライブラリを正しく使用しているかどうか、または私が達成しようとしていることが不可能かどうかを誰かが知っていますか?

0 投票する
1 に答える
3523 参照

node.js - クライアントへの SFTP 接続を介したファイルのストリーミング

sftp 経由でファイル ストアに接続する Node Express サーバーを作成しています。ssh2-sftp-clientパッケージを使用しています。

ファイルを取得するためにget、次のシグネチャを持つ関数があります。

引数はdst、文字列またはa writable stream, which will be used as the destination for a stream pipe.

この記事で説明されているように、サーバーでファイル オブジェクトを作成するのを避け、代わりにファイルをクライアントに転送してメモリ消費を節約したいと考えています。私は次のコードでこれを達成しようとしました:

ただし、これにより、未処理の約束の拒否が原因でノード サーバーがクラッシュします。私が試みていることは可能ですか?クライアントに送信する前に、まずサーバー マシンにファイルを保存する必要がありますか? 問題の sftp パッケージのドキュメント/例を確認しましたが、探している例が見つかりません。