【问题标题】:Upload multiple files with one shortcut in PhpStorm在 PhpStorm 中使用一个快捷方式上传多个文件
【发布时间】:2021-02-20 12:19:06
【问题描述】:

如何在 PhpStorm 中使用单个快捷方式上传选定的文件?

理想情况下,它使用 PhpStorm 部署机制,但欢迎所有答案。例如制作一个 bash 文件,该 scp 将文件覆盖(然后使用 PhpStorm 执行)。

我正在寻找一种方法,我可以简单地按如下方式:CMD + OPT + CTRL + J - 然后它会上传所有这些标记的文件。

我的项目具有如下所示的结构。我已经用 (x) 标记了我希望能够上传的文件:

project
|- subfolder
   |- subsubfolder
      |- assets
      |  |- css (x)
      |  |- js (x)
      |  |- admin (x)
      |  |- img
      |
      |- foo.php
      |- bar.php
      |- style.css (x)
      |- bundle.js (x)
      |- other.php
      |- other-1.php

尝试1

我已经尝试过:“将更改的文件自动上传到默认服务器”==“始终|在显式保存时...” - 这非常神奇。但如果设置不正确 - 那么它可能会一团糟。

【问题讨论】:

  • 如果是固定文件列表...那么我建议编写一个 bash/cmd/powershell 脚本来为您处理此类上传。然后,您可以在 PhpStorm 中创建一个外部工具条目来执行该命令。创建并运行后,您可以在 Settings/Preferences | Keymap 中为该条目分配任何自定义快捷方式。
  • 如果它必须内置部署功能......那么它实际上不可能使用一个快捷方式。您可以做的最好的事情是:1)创建一个自定义范围,在其中列出所有想要的文件 2)在项目视图面板中切换到使用该范围(因此只列出那些文件) 3)一旦准备好部署 - 关注项目视图在该范围处于活动状态时,选择所有文件并点击通常的上传快捷方式。如您所见,出错既不方便也不容易。

标签: bash phpstorm


【解决方案1】:

好的。我就是这样做的。最后!!!我多年来一直在寻找这个(毫不夸张)。我现在对它太恼火了,我深入研究了@LazyOne 带来的建议(

我使用的是 PhpStorm v. 2020,并且我在 Mac 上。


第 1 步 - 安装 SSHPASS

这是第一个障碍。那里有几个不同的水龙头。 This one 为我工作:

brew install hudochenkov/sshpass/sshpass

这是必要的,以避免在每次执行scp-命令时提示输入密码。


第 2 步 - 让 SCP 从终端工作

从 PhpStorm 内部调试很烦人。所以我建议从终端开始,让一个 SCP 命令工作。它涉及的东西太多了,所以它可能因主机而异。

请注意,SCP 正在使用 SSH 复制文件,应启用 SSH 以使其正常工作。

这是一个对我有用的命令:

sshpass -p 'mypassword' scp style.css app.js SERVER_USER@SERVER_IP:public_html/wp-content/themes/my_theme_name/

这会将两个文件复制到给定的目的地。

为什么我不使用 SSH 密钥?

我在一个有主用户的服务器上,我可以将我的 ssh 密钥添加到 - 这样就可以访问服务器。但我不能为个别实例这样做。


第 3 步 - 制作一个 shell 脚本

我制作了一个名为uploader.sh 的脚本并添加了以下内容:

#!/bin/bash

sshpass -p 'mypassword' scp myfile.css anotherfile.js athirdfile.php SERVER_USER@SERVER_IP:public_html/wp-content/themes/my_theme_name/

然后我转到“运行”>>“编辑配置”并添加一个新的 Shell 文件。

注意!!记得取消选中“在终端中执行”。原因是无论身在何处都能继续工作真是太好了。如果您在终端中执行它,那么光标将在终端中完成。如果未选中,则不会执行此操作。

在这里你可以看到我的配置:


第 4 步 - 运行和测试

现在去'运行'>>'运行'并选择你刚刚添加的那个。然后你应该看到一个像这样的窗口:

要再次运行最新的“运行”,您只需按CMD + r

砰!


第 5 步 - 将 uploader.sh 添加到 .gitignore

现在,您服务器的密码以纯文本形式存储在您机器上的一个文件中。这对安全目的不利。因此,如果您正在为核发射编写后端代码,那么您可能不应该这样做。

但请记住将 uploader.sh 文件添加到您的 .gitignore 文件中,以避免将其上传到 repo。

有用的资源

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多