问题标签 [net-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 投票
1 回答
229 浏览

ruby-on-rails - 删除时带有 CarrierWave 的 Net::SFTP::StatusException

我正在尝试event.destroy在我的应用程序中调用一个事件。每个事件都有一个使用carrierwave 上传的图像。当我尝试销毁已上传图像的事件,然后编辑该事件并上传新图像时,我返回错误Net::SFTP::StatusException (2, "no such file")

任何线索如何解决这个问题?没有什么特别的事情发生,只是使用carrierwave和carrierwave-sftp进行简单的图像上传,将其上传到外部服务器。当事件被销毁时,我有一个引用自定义方法(如下)的回调来删除图像。

谢谢!

event.rb 模型

0 投票
1 回答
382 浏览

ruby - 让 Ruby NET::SCP 或 NET::SFTP 使用不同的密码

我试图强制 Capistrano v2 在上传时使用 arcfour 密码。

来自函数重载上传的片段:

Capistrano 允许其他选项传递到 NET::SCP 和 NET::SFTP 的底层实现库,如果有人有强制这些库中的任何一个使用不同密码或 capistrano 使用不同密码的示例 - 那将很棒。

0 投票
1 回答
2360 浏览

perl - 错误安装 IO::Pty perl

安装 IO::Pty cpan

没有安装 SFTP 模块。

0 投票
2 回答
3542 浏览

ruby-on-rails - 使用 Rails gem Net::SFTP 上传文件时出错:没有这样的文件

我正在尝试使用 Net::SFTP gem 将文件上传到服务器。我的代码如下:

当我执行此操作时,我得到:

我认为问题在于目录的整个 remote_path 还不存在。如果我给它一个确实存在的目录路径,它将创建目录。如果它们尚不存在,我希望上传也创建路径中的目录。这确实是问题吗?如果是,我如何使用 SFTP 创建目录?

0 投票
5 回答
3354 浏览

ruby-on-rails - 编码::UndefinedConversionError: "\xA8" 从 ASCII-8BIT 到 UTF-8 (SFTP)

使用 Net-SFTP gem、Ruby 2 和 Rails 4

我编写了在纯 ruby​​ 中工作的代码,但是将我的代码复制到了 rails,现在我得到了:

我可以在我的代码中进行哪些更改以使其正常工作?

日志

来自 GEM 的日志中引用的代码:

https://github.com/net-ssh/net-sftp/blob/master/lib/net/sftp/operations/download.rb#L339

0 投票
3 回答
2288 浏览

ruby-on-rails - ruby net-sftp 逐行读取文件

我正在使用 ruby​​ 2.0.0 和 rails 4.0.0。我有类似的东西:

这将打开 FTP 站点上的文件,但它只是putscsv 文件的第一行。我需要逐行读取这个文件,最好忽略标题。

如何在不本地下载文件的情况下逐行读取文件?

0 投票
3 回答
164 浏览

mysql - Table files transfered between servers flags table as crashed

Work has a web site that uses large data sets, load balanced between two MySQL 5.6.16-64.2 servers using MyISAM, running on Linux (2.6.32-358.el6.x86_64 GNU/Linux.) This data is being updated hourly from a text based file set that is received from a MS-SQL database. To avoid disruption on reads from the web site and at the same time make sure the updates doesn't take too long following process was put in place:

Have the data one a third Linux box (only used for data update processing,) update the different data tables as needed, move a copy of the physical table files to the production servers under a temporary name, and then do a table swap by MySQL TABLE RENAME.

But every time the table (under the temporary name) is seen by the destination MySQL servers as being crashed and require repair. The repair takes too long, so it cannot be forced to do a repair before doing the table swap.

The processing is programmed in Ruby 1.8.7 by having a thread for each server (just as a FYI, this also happens if not doing it in a thread to a single server.)

The steps to perform file copy is as follows:

Use Net::SFTP to transfer the files to a destination folder that is not the database folder (done due to permissions.) Code example of the file transfer for the main table files (if table also has partition files then they are transferred separately and rspFile is assigned differently to match the temporary name.) For speed it is parallel uploaded:

Then assign the files the owner and group to the mysql user and to move the files to the MySQL database folder, by using Net::SSH to execute sudo shell commands:

The doSSHCommand method:

If done manually by using scp to move the files over, do the owner/group changes, and move the files, then it never crashes the table. By checking the file sizes compared between scp and Net::SFTP there are no difference.

Other process methods has been tried, but experience they take too long compared to using the method described above. Anyone have an idea of why the tables are being crashed and if there a solution to avoid table crash without having to do a table repair?

0 投票
1 回答
652 浏览

ruby - 在 Heroku 上存储 SSH 密钥以通过 SFTP 将 Rails 应用程序连接到远程

这是一个很长的镜头,但我正在尝试向 Heroku 添加一个 ssh 密钥,以用于通过 SFTP 连接到另一台服务器:

我最初的解决方案是将 .ssh 目录推送到 repo 并存储yada.pem在那里。keys将包括此文件的路径。

有人告诉我,一个更安全的解决方案是将密钥存储在 Heroku 的环境变量中。问题是,这会将密钥存储为字符串,我无法真正将其传递给 SFTP.start。

我可以通过几种方式解决这个问题:

  1. 有没有办法用 Ruby 将密钥作为字符串传递net/sftp
  2. 有没有办法向 Heroku 添加公钥,以便net/sftp在尝试连接到远程服务器时使用它?

谢谢

0 投票
1 回答
6398 浏览

linux - 无法在 Perl 中使用 Net::SFTP 模块

我在我的 Linux Ubuntu 机器上使用 perl,v5.10.1。我尝试Net::SFTP通过提示安装模块,cpan但它在过去 2 天内给出了以下错误。

警告:

错误:

然后我通过 CPAN 站点通过 tar 文件方法安装了它。现在,当我运行下面的示例脚本时,它会向我抛出错误。

脚本:

错误:

我没有Net/SSH/Perl/Buffer.pm安装,很少有像这样Buffer.pm的模块位于其他路径。

我的@INC包含

有人可以在这里帮忙吗?为什么cpan提示方法会引发该错误?接下来是 tar 文件方法,如果存在模块依赖性问题,那么如何使用 CPAN tar 文件方法解决它?还有如何在正确的路径上安装模块,因为我不想在@INC脚本开头的路径中添加所有必需的模块路径。我是这里的root用户。

0 投票
1 回答
2248 浏览

ruby-on-rails - Rails:使用 sidekiq 结果更新控制器

早上好!

我有一个表单,其中包含 IP、开始日期和停止日期,它调用 SideKiq 工作人员,该工作人员通过 ssh 在外部服务器上执行脚本,然后将生成的文件通过 sFTP 发送到本地服务器。

控制器方法:

SideKiq 工人:

我还让 SideKiq 工作人员将生成的文件解析为哈希:

以及解析它的部分_results.html.erb

我尝试在 create.js.coffee 文件中完成作业后渲染结果<%= render partial: 'results', locals: { file_hash: @file_hash } %>,但我认为它对实例变量没有任何想法。

如何将完成的 SideKiq 变量的结果传递给视图?我想我应该注意我有另一个控制器方法可以查询 SideKiq 作业的完成百分比,所以我应该能够知道它何时完成。

编辑:

percentage_done在控制器中

当前的ajax