【问题标题】:Does an FtpClient need specific permissions to create folders in the FTP server?FtpClient 是否需要特定权限才能在 FTP 服务器中创建文件夹?
【发布时间】:2016-06-25 13:49:13
【问题描述】:

我正在尝试将.csv 格式的 SQL Server 数据转储到远程 FTP 服务器。直接上传文件绝对没问题。例如。如果我将文件上传为ftp://ftp.ftpservername/mySqlData.csv,则文件上传很容易。但是,我每天都会在任务调度程序上运行这个数据转储过程,每个.csv 文件都将存储在一个以日期为名称的文件夹中。

我正在使用WebRequest 通过MakeDirectory 方法完成此操作。所以简而言之,我可以上传文件但不能创建新的文件夹/目录。 简单的读/写权限是否足以创建目录? Ftp 服务器已启用 SSL,并且正在使用被动模式传输数据。我正在使用以下代码创建目录,但我得到了眼睛疼 (550) 拒绝访问错误。

public static string MakeDirectory()
    {
        try
        {
            Uri ftpUri = new Uri(@"ftp://ftp3.ftpserver.com:portnum/TestFolder");
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpUri);
            request.Credentials = new NetworkCredential(FtpUsername, FtpPassword);
            request.Timeout = -1;
            request.UsePassive = true;
            request.UseBinary = true;
            request.KeepAlive = false;
            ServicePointManager.ServerCertificateValidationCallback = AcceptAllCertifications;
            request.Method = WebRequestMethods.Ftp.MakeDirectory;
            using (var response = (FtpWebResponse)request.GetResponse())
            {
                return ftpUri.ToString();
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

【问题讨论】:

  • 是的,服务器端决定了每次使用能做什么,不能做什么。你看到异常了吗?请注意,您可能无法使用被动模式来创建文件夹,但我不记得在我的职业生涯中那么久。如果您运行通信跟踪,您将能够看到谁立即结束了会话。如果是服务器,那么你知道的足够多,可以问服务器人员几个问题,例如会话初始化可能工作正常,这告诉你“你进入了”。如果会话在您尝试创建文件夹时结束,那么这很可能是被动模式问题或权限问题。
  • @JohnPeters 我禁用了 PassiveMode 并再次尝试,但我得到了同样的错误。接下来我安装了 WinSCP 并尝试在 FTP 服务器中创建一个新文件夹,我收到以下消息:Operation is not supported under Connect:Enterprise FTP server. 其次,我检查了 InnerException 以获取更多详细信息,在 Responsebanner 属性中,我可以查看 FTP 服务器的名称。所以我确信我的代码正在连接到服务器,但在创建文件夹时会抛出错误。所以我相信这是你提到的权限问题。将进一步调查权限。谢谢约翰!
  • @JohnPeters 你好约翰!你完全正确。存在权限问题。有一些特定于创建文件夹的权限,这些权限需要提供给 FTP 客户端来创建文件夹,类似于我们在 Windows 资源管理器中的权限。提供这些权限解决了这个问题。非常感谢!

标签: c# ftp permissions directory remote-server


【解决方案1】:

是的,需要向任何 FTP 客户端提供特定的文件夹权限,以便他们能够在 FTP 目录中添加新文件夹。此外,通信需要处于被动模式才能这样做。

【讨论】:

    猜你喜欢
    • 2020-05-14
    • 2016-09-26
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 2019-10-31
    • 2014-11-19
    • 1970-01-01
    • 2013-06-17
    相关资源
    最近更新 更多