- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试使用 FTPS 从服务器获取文件。我能够进行身份验证,但是当我尝试列出/获取文件时,我收到“521 数据连接必须加密”。 Net::FTP 模块是否能够做到这一点,我将如何实现它?
我将 Net::FTPTLS 修改为我自己的类,因为我需要存储一个自签名证书。
require 'socket'
require 'openssl'
require 'net/ftp'
module MP
class FTPS < Net::FTP
def connect(host, port=FTP_PORT)
@hostname = host
super
end
def login(user = "anonymous", passwd = nil, cert_file = nil, acct = nil)
store = OpenSSL::X509::Store.new
if cert_file == nil
store.set_default_paths
else
certraw = File.read(cert_file)
cert = OpenSSL::X509::Certificate.new(certraw)
store.add_cert(cert)
end
ctx = OpenSSL::SSL::SSLContext.new('SSLv23')
ctx.cert_store = store
ctx.verify_mode = OpenSSL::SSL::VERIFY_PEER
ctx.key = nil
ctx.cert = cert
voidcmd("AUTH TLS")
@sock = OpenSSL::SSL::SSLSocket.new(@sock, ctx)
@sock.connect
#@sock.post_connection_check(@hostname)
super(user, passwd, acct)
voidcmd("PBSZ 0")
end
end
end
下面是尝试获取文件的片段:
def get_ftpclient(host)
FTPS::new(host)
end
def check_for_files
@ftp = get_ftpclient(@host)
@ftp.passive = true
@ftp.login(@user_name, @password, @cert_file)
@ftp.chdir(@remote_dir)
files = @ftp.nlst
files
end
第一次失败。
编辑:我尝试将 voidcmd("PROT P") 添加到登录函数的末尾,但它只是挂了一会儿,然后我最终得到:
IOError: Unsupported record version Unknown-48.48
___BEGIN BACKTRACE___
org/jruby/ext/openssl/SSLSocket.java:564:in `sysread'
/opt/jruby/lib/ruby/gems/1.8/gems/jruby-openssl-0.7.6.1/lib/1.8/openssl/buffering.rb:36:in `fill_rbuff'
/opt/jruby/lib/ruby/gems/1.8/gems/jruby-openssl-0.7.6.1/lib/1.8/openssl/buffering.rb:159:in `eof?'
/opt/jruby/lib/ruby/gems/1.8/gems/jruby-openssl-0.7.6.1/lib/1.8/openssl/buffering.rb:134:in `readline'
/opt/jruby/lib/ruby/1.8/net/ftp.rb:211:in `getline'
/opt/jruby/lib/ruby/1.8/net/ftp.rb:221:in `getmultiline'
/opt/jruby/lib/ruby/1.8/net/ftp.rb:235:in `getresp'
/opt/jruby/lib/ruby/1.8/net/ftp.rb:251:in `voidresp'
/opt/jruby/lib/ruby/1.8/net/ftp.rb:436:in `retrlines'
/opt/jruby/lib/ruby/1.8/monitor.rb:191:in `mon_synchronize'
/opt/jruby/lib/ruby/1.8/net/ftp.rb:422:in `retrlines'
/opt/jruby/lib/ruby/1.8/net/ftp.rb:612:in `nlst'
... etc
最佳答案
我意识到这是一个老问题,但我在研究 FTPS ruby gems 时偶然发现了它。
没有。 net::FTP 本身不支持 FTPS。
我强烈推荐double-bag-ftps .
Provides a child class of Net::FTP to support implicit and explicit FTPS.
在过去的一年里,0.1.1 版对我每天运行来说效果很好。
关于ruby - 使用 Ruby FTPS 进行加密传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16446442/
配置 我正在使用来自 apache commons net 3.0.1 的 FtpsClient 与来自 apache ftpserver 1.0.6 的 FtpServer 对话。 客户端和服务器使
我正在运行 Ubuntu 12.10,并且使用 Yahoo Webhosting,并且我还有自己的域“example.com”。我曾经使用 FTP 将文件传输到我的虚拟主机帐户或从我的虚拟主机帐户传输
我在将文件从 Unix/Mac/Linux 环境传输到 Windows FTP 服务器时遇到问题。 而完全相同的 Java 代码可以在 Windows PC 上运行。 来自 *Nix/Mac 的传输仅
我正在使用ftps模块,并且我已经在 Cygwin 上安装了 lftp。我遇到了麻烦,因为我的 Node js 应用程序看起来连接正常,但我的命令都没有运行。该模块的文档不是很详细,所以我只是尽我所能
我们遇到的最初问题是,由于服务器证书不受信任,常规 FTP 下载开始失败。这促使我们想知道证书是否已在对方通知我们的情况下进行了更新,因此我们想下载当前证书并将其与我们 keystore 中的证书进行
仍然没有答案。感谢您提供任何帮助! 我正在使用 Apache Commons-Net3.1 并尝试让 FTPS 正常工作。当我尝试连接时,我在控制台中收到以下错误: ---编辑:代码和错误已更新---
我不知道如何在 iPhone 上制作 FTPS(FTP over SSL)。我想使用下面的代码 ftpStream = CFWriteStreamCreateWithFTPURL(NULL, (CFU
是否有可能通过具有身份验证的代理建立 FTPS 服务器连接? 为了使用代理身份验证连接到普通的 FTP 服务器,我使用了 Apache Commons 的 FTPHTTPClient。但是,我找不到在
我必须使用 SSL 与 FTP 服务器通信。 我收到了一个关于如何使用 WinScp 命令的示例: open ftpes://SomeUser:SomePass@SomeDomain.com/ -ce
我正在尝试使用 ssh/tls 连接到 ftp 服务器,但我使用的每种方法都没有帮助。 FTPSClient ftpsClient = new FTPSClient("TLS", false)
我需要 下载文件结构 (超过 4GB)来自 FTPS 服务器 (基于 TLS 协议(protocol)的隐式 FTP)。不幸的是 wget不支持 FTPS,但是 curl does .然而curl不支
我正在从事应用程序开发工作。在该应用程序上,我正在执行文件存储、检索和删除操作。为了识别服务器上的文件,我使用索引( HashMap 文件)文件。每次执行上传操作时,我都会更新“index”文件并将“
我正在尝试使用此代码将文件上传到 FTP,我遇到的问题是当语法遇到 serverURI.Scheme != Uri.UriSchemeFtp 时它返回 false。这是否意味着我的 URI 地址设置不
我能够通过 FTP 连接到 Apache FTP 服务器 ( http://mina.apache.org/ftpserver-project/index.html )。我按照同样的方式建立FTPS连
我需要将 SUSE Linux Enterprise 12 中的文件上传到仅允许隐式 FTPS 的 FTP 服务器(实际上传需要从 PHP 触发,但我可以运行任意 shell 命令)。默认情况下,防火
我的应用程序需要在上传后更改远程文件权限(STOR)。为此,它使用 ftps 连接。 与 chmod 命令类似,正确的命令是什么? 我搜索了FTP Commands and Extensions我没有
我正在尝试将文件上传到 FTP 服务器 (FTPS)。运行以下代码会产生异常: The remote certificate is invalid according to the validatio
有人要求我使用客户端身份验证证书设置 FTPS 连接。我是客户端,连接到服务器。我在 Windows7 工作站上,在防火墙后面。一些其他信息: 仅限 TLS 1.2 仅被动模式 我的 WAN IP 已
我目前正在尝试使用 PHP 在我们的服务器和远程 FTPS(FTP over SSL)服务器之间传输小文件。我是完成这项工作的标准公平,即 file_put_contents、file_get_con
我有一个场景,我需要将文件上传到远程 FTP 服务器。我尝试上传此文件的机器位于 AWS-VPC 内和 SOCKS 服务器后面,现在我正在使用以下命令来执行此操作 curl --connect-ti
我是一名优秀的程序员,十分优秀!