在PhpStorm中使用一个快捷方式上传多个文件

问题描述

如何在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

Attempt1

我已经尝试过:“将更改的文件自动上传认服务器” ==“始终|在显式保存...” -这非常神奇。但是,如果设置不正确-则可能造成混乱。

解决方法

好的。我就是这样做的。最后!!!我多年来一直在寻找这个(毫不夸张)。我现在对它太恼火了,我深入研究了@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-key 添加到它 - 这样就可以访问服务器。但我不能为单个实例做到这一点。


第 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 文件。

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

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

upload multiple files in PHPStorm script


第 4 步 - 运行和测试

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

result uploading multiple files with one command

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

砰!


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

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

但请记住将 uploader.sh 文件添加到您的 .gitignore 文件以避免将其上传到存储库。

有用的资源

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...