我想把我的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'
型格式
9nvpjoqh1#
正如@tamas7所说,它是防火墙,但您的本地机器可能也是防火墙。因此,除非您有一个可以从Internet访问SSH的私有服务器,否则您将无法使用scp。我个人使用transfer.sh免费和open source服务。上传你的config.yml到它:
config.yml
$ curl --upload-file ./config.yml https://transfer.sh/ https://transfer.sh/66nb8/config.yml
字符串然后从任何你想要的地方下载回来:
$ wget https://transfer.sh/66nb8/config.yml
型
smtd7mpg2#
根据http://www.evans.io/posts/heroku-survival-guide/,传入连接被防火墙隔离。在这种情况下,您需要从Heroku服务器访问本地计算机。
heroku run bash scp user@mylocalmachine:/home/user/dir/file.txt .
字符串
3gtaxfhh3#
现在回答这个问题有点晚了,但我使用像localtunnel-https://localtunnel.github.io/www/这样的服务来将文件从本地机器复制到heroku。首先,在文件所在的目录中运行一个python HTTP服务器。
localtunnel
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
polkgigr4#
您还可以使用像https://ngrok.com/这样的服务来打开到本地计算机的TCP隧道。您需要启用远程登录,如simlmx answer中所示。在本地计算机上,打开TCP隧道,如下所示:
$ ngrok tcp 22
字符串然后,在Heroku控制台上,使用SCP和Ngrok提供的PORT和HOST。
$ scp -P [PORT] username@[HOST]:~/path/to/file.ext .
huwehgph5#
如果您需要下载整个存储库,例如恢复本地不再拥有的应用程序,请使用heroku git:clone -a myapp。Docs的数据。
heroku git:clone -a myapp
hec6srdp6#
在tamas7's answer上展开:您可以从heroku服务器连接到您的计算机。如果您的计算机位于路由器后面,则还需要将连接转发到您的计算机。
ssh
在我的mac上,它就像在Preferences / Sharing面板中启用它一样简单。x1c 0d1x的数据
Preferences / Sharing
转到浏览器中的路由器设置页面(通常为192.168.0.1,但因路由器而异)。找到端口转发部分,并在端口22上转发一些端口到您的计算机。这是我的tp-link:的在这里,我确保端口22000转发到端口22上的计算机(192.168.0.110)。
192.168.0.1
22
22000
192.168.0.110
Google一下“我的IP是什么”。
heroku run bash scp -P 22000 your_user@your_external_IP:/path/to/your/file .
一旦你完成了,它可能是一个很好的做法,以禁用端口转发和远程登录。
pkmbmrz77#
看来heroku并不是为像这样手动上传文件而设计的,至少是持久性的。参见https://help.heroku.com/K1PPS2WM/why-are-my-file-uploads-missing-deleted-from-the-application
7条答案
按热度按时间9nvpjoqh1#
正如@tamas7所说,它是防火墙,但您的本地机器可能也是防火墙。因此,除非您有一个可以从Internet访问SSH的私有服务器,否则您将无法使用scp。
我个人使用transfer.sh免费和open source服务。
上传你的
config.yml
到它:字符串
然后从任何你想要的地方下载回来:
型
smtd7mpg2#
根据http://www.evans.io/posts/heroku-survival-guide/,传入连接被防火墙隔离。在这种情况下,您需要从Heroku服务器访问本地计算机。
字符串
3gtaxfhh3#
现在回答这个问题有点晚了,但我使用像
localtunnel
-https://localtunnel.github.io/www/这样的服务来将文件从本地机器复制到heroku。首先,在文件所在的目录中运行一个python HTTP服务器。
字符串
这将在端口8000启动服务器。配置localtunnel以连接到该端口。
型
现在从你的heroku机器上,你可以通过curl获取文件。
型
polkgigr4#
您还可以使用像https://ngrok.com/这样的服务来打开到本地计算机的TCP隧道。
您需要启用远程登录,如simlmx answer中所示。
在本地计算机上,打开TCP隧道,如下所示:
字符串
然后,在Heroku控制台上,使用SCP和Ngrok提供的PORT和HOST。
型
huwehgph5#
如果您需要下载整个存储库,例如恢复本地不再拥有的应用程序,请使用
heroku git:clone -a myapp
。Docs的数据。hec6srdp6#
在tamas7's answer上展开:
您可以从heroku服务器连接到您的计算机。
如果您的计算机位于路由器后面,则还需要将连接转发到您的计算机。
1.您的计算机必须接受
ssh
连接在我的mac上,它就像在
Preferences / Sharing
面板中启用它一样简单。x1c 0d1x的数据2.您的路由器需要将连接转发到您的计算机。
转到浏览器中的路由器设置页面(通常为
192.168.0.1
,但因路由器而异)。找到端口转发部分,并在端口22
上转发一些端口到您的计算机。这是我的tp-link:
的
在这里,我确保端口
22000
转发到端口22
上的计算机(192.168.0.110
)。3.查找您的外网IP
Google一下“我的IP是什么”。
4.从heroku scp你的文件
字符串
5.全部撤销!
一旦你完成了,它可能是一个很好的做法,以禁用端口转发和远程登录。
pkmbmrz77#
看来heroku并不是为像这样手动上传文件而设计的,至少是持久性的。参见https://help.heroku.com/K1PPS2WM/why-are-my-file-uploads-missing-deleted-from-the-application