SCP文件从本地到Heroku服务器

时间:2015-01-04 03:12:18

标签: linux heroku scp

我想将我的config.yml文件从我的本地django app目录复制到我的heroku服务器,但我不知道如何获取heroku的user@host.com格式。

我尝试过'heroku run bash'

scp  /home/user/app/config.yml

我不确定如何在

中获取它
scp user@myhost.com:/home/user/dir1/file.txt user@myhost.com:/home/user/dir2' 

格式

5 个答案:

答案 0 :(得分:23)

正如@ tamas7所说它已经防火墙,但你的本地机器也可能是防火墙。因此,除非您有可通过Internet访问SSH的私人服务器,否则您将无法进行scp。

我个人使用transfer.sh免费和open source服务。

config.yml上传到它:

$ curl --upload-file ./config.yml https://transfer.sh/
https://transfer.sh/66nb8/config.yml

然后从任何地方下载它:

$ wget https://transfer.sh/66nb8/config.yml

答案 1 :(得分:6)

根据http://www.evans.io/posts/heroku-survival-guide/传入的连接被防火墙关闭。在这种情况下,您需要从Heroku服务器接近本地计算机。

heroku run bash
scp user@mylocalmachine:/home/user/dir/file.txt .

答案 2 :(得分:0)

如果您需要下载整个存储库,例如要恢复本地不再使用的应用程序,请使用heroku git:clone -a myappDocs

答案 3 :(得分:0)

tamas7's answer上展开:

您可以从heroku服务器连接到计算机。

如果您的计算机位于路由器后面,则还需要将连接转发到计算机。

1。您的计算机必须接受ssh个连接

在我的Mac上,就像在Preferences / Sharing面板中启用它一样简单。 enter image description here

2。您的路由器需要将连接转发到计算机。

在浏览器中转到路由器的设置页面(通常为192.168.0.1,但取决于路由器)。找到端口转发部分,然后在端口22上将某些端口转发到您的计算机。

这是我的tp链接上的样子: enter image description here

在这里,我确保将端口22000转发到端口192.168.0.110上的计算机(22)。

3。找到您的外部IP

只用谷歌“我的IP是什么”。

4。从heroku中发送文件

heroku run bash
scp -P 22000 your_user@your_external_IP:/path/to/your/file .

5。撤消所有内容!

完成后,最好禁用端口转发和远程登录。

答案 4 :(得分:-1)

回答这个问题有点晚了,但是我使用localtunnel-https://localtunnel.github.io/www/之类的服务将文件从本地计算机复制到heroku。

首先,在文件所在的目录中运行python HTTP服务器。

cd /path/to/file
python3 -m http.server

这将在端口8000中启动服务器。将localtunnel配置为连接到该端口。

lt -s mylocal -p 8000

现在,您可以从heroku机器上通过curl获取文件。

curl -XGET http://mylocal.localtunnel.me/myfile.txt > myfile.txt