【问题标题】:SCP File from local to Heroku Server从本地到 Heroku 服务器的 SCP 文件
【发布时间】:2015-03-01 22:55:36
【问题描述】:

我想将我的 config.yml 文件从本地 django 应用程序目录复制到我的 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' 

格式

【问题讨论】:

    标签: linux heroku scp


    【解决方案1】:

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

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

    【讨论】:

    • user@mylocalmachine - 我需要一个 IP 地址吗?我如何告诉它我的本地机器在哪里?
    • "mylocalmachine" 是 IP,"user" 是您登录服务器的用户
    • 如何使用我的笔记本电脑本地机器输入 user@mylocalmachine? :D
    【解决方案2】:

    正如@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
    

    【讨论】:

    • 真的上传未加密的配置文件吗?
    • @Michael,是的,如果需要,您可以使用 gpg,但这不是 OP 问题,我尽量保持直截了当。如果您认为有用,请随意添加补充答案。
    • 巧妙的技巧,对我正在寻找的东西非常有用。谢谢。
    • 如果你想加密它,你可以使用:cat <file_name> | gpg -ac -o- | curl -X PUT -T "-" https://transfer.sh/<file_name>.gpg 上传它并使用:curl https://transfer.sh/<hash>/<file_name>.gpg | gpg -o- > <file_name> 下载它
    • 看你所说的安全@GofyanandKitty是什么意思,但你总是可以加密它
    【解决方案3】:

    回答这个问题有点晚了,但我使用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
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        扩展至tamas7's answer

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

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

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

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

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

        在浏览器中转到路由器的设置页面(通常为 192.168.0.1,但因路由器而异)。找到端口转发部分,并在端口22 上将一些端口转发到您的计算机。

        这是它在我的 tp-link 上的样子:

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

        3。查找您的外部 IP

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

        4。从heroku scp 你的文件

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

        5。撤消一切!

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

        【讨论】:

          猜你喜欢
          • 2014-11-24
          • 2021-08-13
          • 2019-07-21
          • 2019-03-28
          • 2012-02-17
          • 1970-01-01
          • 2018-01-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多