FTPサーバーからコンピューターのローカルドライブにファイルをダウンロードするためにcURLコマンドを使用しようとしています。私はもう試した
curl " ftp:// myftpsite " --user name:password -Q "CWD/users/myfolder /" -O "myfile.raw"
しかし、それは言うエラーを返します:
curl:リモートファイル名に長さがありません!
curl:詳細については、「curl --help」または「curl --manual」を試してください
curl:(6)ホストを解決できませんでした:myfile.raw;要求されたタイプのデータレコードはありません
他の方法を試しましたが、何も機能しないようです。
また、ファイルのダウンロード先のフォルダーを指定する方法もよくわかりません。どうすればいいですか?
試す
curl -u user:password 'ftp://mysite/%2fusers/myfolder/myfile/raw' -o ~/Downloads/myfile.raw
FTP URLでは、パスは開始ディレクトリ(通常はホームディレクトリ)からの相対パスです。絶対パスを指定する必要があります。つまり、%2f
を使用して/
を指定します。これが必要なのは、ftp:
URLのパスが スラッシュで区切られた名前のリスト として扱われるためです。それぞれのパスは、個別のCWD
コマンドに与えられることになっています。 %2f
は、分割後にデコードされます。 RFC 1738 および FTP URLs を参照してください。
出力場所については、-o
へのパスを指定するだけです。
セキュリティの提案:
URLにパスワードを含めないでください。 ~/.netrc
への保存も特に安全ではありませんが、少なくともps -ef
からは隠されています。
パスワードは平文で送信されます。サーバーがサポートしている場合は、curl --ssl-reqd
またはcurl ftps://mysite/...
を使用します
SFTP(SSHファイル転送プロトコル)を使用するとさらに良いでしょう。
curl -T /users/myfolder/myfile.raw -u username:password "ftp://myftpsite/path/myfile.raw"
いつも使っています。それは魅力のように働きます。
試してください:
curl "ftp://user:password@myftpsite/users/myfolder/myfile.raw"
(リモートファイル名が「myfile.raw」の場合)
ヤンが示唆するように、
curl " ftp:// user:password@myftpsite/users/myfolder/myfile.raw "
は機能するはずですが、一部のFTPサーバーは標準に準拠していないセキュリティポリシーを使用しています。これらの場合、--ftp-method singlecwd
または--ftp-method nocwd
オプションが役立つ場合があります。