我正在尝试用我的AIR应用程序连接到SFTP服务器。这并不重要,它是一个AIR应用程序,除了我没有找到任何库或AIR API方法。
我的第一个想法是找到另一种语言的库,并在ActionScript中重写它。我宁愿不这样做,因为我缺乏经验可能会带来安全问题。
我的第二个想法是从我的主应用程序调用本地进程或命令,如sftp
或sshpass
或curl
,并将本地和远程上传位置传递给它,让它完成工作。这样做的缺点是,如果他们没有安装命令,他们必须安装一个单独的程序。
我的问题是:
- 这些SFTP命令是否默认在Mac和Windows上都可用?
- 我应该存储用户登录(我不想)还是每次都提示他们输入?SFTP/公钥是否消除了这种需要?
我在这里和这里发现了两个相关的问题,但有些问题我不明白。它们似乎也专门针对*nux(它可能适用于Mac,但不适用于Windows)。
我在这方面没有经验,所以如果这是一个好主意,我欢迎那些有经验的人给予指导。概述型的答案是欢迎我,因为我可以尝试找出细节。如果没有给出答案,一旦我弄清楚了,我会发布一个答案。请不要关闭这个问题(而是建议编辑)。
仅供参考,我使用AIR进行本地进程调用。
扩展桌面配置文件中的AIR应用程序可以执行文件,就好像它是由命令行调用的。它可以与本地进程的标准流。标准流包括标准输入流(stdin)、输出流(stdout)、标准错误流(stderr)
我还可以创建和调用一个scpt、sh或bat文件。
Mac上安装的命令:
- curl_init(), curl_setopt() <
- ssh/gh>
- sftp
Mac上未安装的命令:
- sshpass
这些SFTP命令是否默认在Mac和Windows上都可用?
。默认情况下,windows上没有sftp
或ssh
,除非您通过cygwin安装或将它们捆绑在您的应用程序中(也是解决方案)。
我应该存储用户登录(我不想这样做)还是每次都提示他们输入?
首选提示符。
SFTP/公钥是否消除了这种需要?
可以,但是您必须存储私钥,这与存储密码几乎相同。