ruby ライブラリ Net-SFTP を使用して、アップロードを使用してファイルのフォルダーをリモートサーバーにアップロードしています! コマンドを実行して、制御を取り戻したときに、フォルダーのアップロードが完了していないことがわかりました。このフォルダーのアクセス許可を変更する必要があり、リモート サーバーの umask が原因でアップロード コマンドを使用してそれらを達成できないという事実を除けば、それほど重要ではありません。私はリモート サーバーに root アカウントを持っていないので、基本的にはフォルダーが存在するのを待ってから、そのアクセス許可を変更する必要があります。アクセス許可を変更しようとすると、フォルダーがまだ存在しない場合がありますが、最終的には表示されます。私の質問は二重だと思います。
1.) ブロッキング呼び出しでアップロードしないのはなぜですか! フォルダが作成されるまで実際にブロックします。2.) 低レベルの呼び出しで強制的にブロックする方法はありますか? または、数秒待ってからポーリングして、フォルダーがまだ存在するかどうかを確認する必要がありますか?
更新: 本当の問題は、クラスターにログインしているマシンと同じマシンである場合と異なる場合がある別の ssh 接続を介してアクセス許可を変更しようとしているためだと思われます。つまり、フォルダーは 1 台のコンピューターで作成されていますが、アクセス許可を変更しようとするまでに他のコンピューターに複製されていません。質問を閉じる方法はありますか?