我是SFTP的文件到我的ubuntu服务器上的目录。理想情况下,我希望这些文件位于我的apache public html文件夹中,因为它们是用户正在上传的图片。
我发现我不能简单地将文件直接SFTP到我的公共html文件夹,所以我正在研究其他方法。我的图片服务器是ubuntu,所以我认为可以使用一些本机命令或设置来自动将显示在我的SFTP目录中的图片移动到我的公共html目录。
希望我有意义,而且我不确定我应该在哪里提出这个问题。
答案 0 :(得分:3)
三种可能性:
为什么不能直接在公共html文件夹中上传文件?我认为这与写入该目录的访问限制有关,因此您可以尝试将此目录的写入权限更改为您要上载的用户。 使用 chmod 命令更改访问限制,使用 chown 更改diles和目录的所有权。最好阅读这些命令的文档(" man chmod "" man chown ")。
< / LI>您可以定期运行脚本,获取所有上传的文件并将其移动到指定的目标目录。为此,您需要在bash中编写一个简短的shell脚本,例如:
#!/bin/bash
mv /home/user/UPLOADS/*.jpg /var/www/images/
(此脚本只从目录/ home / user / UPLOADS中获取扩展名为.jpg的所有文件,并将它们放入目录/ var / wwww / images中而无需进一步检查)
将此脚本放在某处(例如/ home / user / bin /)并使其可执行: chmod a + x / home / user / bin / SCRIPTNAME
此脚本可以通过cron定期运行,调用 crontab -e 并写一个新行 像这样:
*/5 * * * * /home/user/bin/SCRIPTNAME
每5分钟执行一次脚本。
缺点是它每5分钟调用一次,因此上传和移动最多5分钟之间可能存在差距。另外,如果脚本在上传新图像的同时运行,可能会发生奇怪的事情......
第三种可能性是通过观察具有内核的inotify功能的上传目录,在上传完成后立即执行脚本。如果你想这样做,最好谷歌inotify例子,这有点复杂。这是另一个答案: Monitor Directory for Changes