gulp-sftp到Basic AuthType目录的权限被拒绝错误

时间:2015-11-05 01:30:03

标签: node.js .htaccess web web-development-server

我正在使用gulp任务将我构建的文件上传到带有 gulp-sftp 插件的Web服务器。但是,我现在收到错误,因为基本身份验证已添加到测试站点上的remotePath目录中(以.htaccess文件的形式)。

这是我的gulp任务:

gulp.task('upload', function() {
    gulp.src('./build/**/*')
        .pipe(sftp({
            host: 'example.com',
            auth: 'keyMain',
            remotePath: '/var/www/dest',
            callback: uploadComplete
        }));
});

这是我在运行相同任务时遇到的错误:

[13:42:34] Authenticating with password.
[13:42:35] SFTP error or directory exists: Error: Failure /var/www/dest
events.js:85
throw er; // Unhandled 'error' event
      ^
Error: Permission denied
    at SFTP._parse (...)
    ...

SFTP凭据与基本AuthType凭据不同,我的.ftppass文件仅包含SFTP凭据。

以下是我的.ftppass文件的样子:

{
    "keyMain": {
        "user": "<my SFTP username>",
        "pass": "<my SFTP password>"
    }
}

我想我需要通过Basic AuthType凭据来修复此错误。有人可以帮忙吗?

干杯:)

PS:我正在使用:

  • Mac OS X 10.11.1
  • 节点v0.12.7
  • Gulp CLI版本3.9.0
  • gulp-sftp ^ 0.1.5

2 个答案:

答案 0 :(得分:0)

刚发现问题:我的gulp任务无法覆盖现有的index.html文件。当我手动删除该文件(使用FTP客户端)并重试我的gulp任务时,它工作正常。

答案 1 :(得分:0)

当我使用错误的路径时,会收到相同的错误。与传统的FTP客户端连接时,我被条目(主目录)迷住了。您只想直接使用/

从根目录进行引用

代替../../myPath/html

我需要/myPath/html