问题标签 [fluentftp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
201 浏览

c# - 执行 CompareFileAsync 时输出“ChecksumNotSupported”FluentFTP

为什么会输出这个?我想查看 Equals 或 NotEquals

0 投票
1 回答
50 浏览

c# - Visual Studio Mac 的文件权限异常

我在 Mac 上运行 Visual Studio 来开发.NET Core. 我有文件权限问题。

例如,当我使用FluentFTP下载文件时:

我收到以下错误:

请注意,我也使用Pathand遇到了这个错误Directory

我已经确认路径没问题。我已经测试设置chmod 777 /Users/max/temp/. 我还尝试将文件放在/var/tmp/默认为完整文件访问权限的位置。

我感觉Visual Studio没有足够的权限运行。在这个线程中,通过设置解决了 Visual Studio Code 的类似问题sudo chown -R $(whoami) /Users/$(whoami)/.vscode,但我找不到 Visual Studio 的任何点文件。

0 投票
1 回答
664 浏览

c# - 流利的FTP。如何停止下载过程

我需要制作一个停止下载文件的按钮。例如,我点击了 1 次下载开始,第二次点击停止。

0 投票
0 回答
314 浏览

c# - 使用 FluentFTP 将文件直接流式传输到新的 ZIP 存档以节省内存

在我的文件管理器中,我需要提供下载文件的功能。我需要能够同时选择单个文件和目录。这可能是一个例子:

如果我选择这 3 个项目(2 个文件和 1 个文件夹),我需要将它们全部添加到 ZIP 存档中。我已经有一个工作示例,我在其中使用了DownloadFolder()DownloadFile()。但是,它是这样的:

  1. 将每个文件下载到磁盘
  2. 如果有任何文件夹,递归查看它们并将这些文件下载到各自的文件夹(自动完成)
  3. 调用System.IO.Compression.ZipFile.CreateFromDirectory()将下载的文件压缩到 ZIP 存档
  4. 删除之前下载的文件
  5. 使用流式传输 ZIP 文件,new FileStream(zipFile, FileMode.Open, FileAccess.Read, FileShare.None, 4096, FileOptions.DeleteOnClose)以便之后删除 ZIP 文件

这很糟糕,因为我需要首先下载文件,将它们添加到存档中,删除我刚刚下载的文件,将存档流式传输给用户,然后最后删除存档进行清理。什么会更好:

  1. 告诉 FluentFTP 要流式传输哪些文件
  2. 在磁盘上创建 ZIP 存档
  3. 以递归方式将每个文件和目录添加到存档中
  4. 流式传输存档并随后删除文件

通过这样做,我应该能够制作非常非常大的文件(如果是这种情况,则为 100+ GB),而我所需要关心的只是临时存储,直到存档被删除。

我找不到有关如何执行此操作的任何信息,所以有些事情告诉我,我需要使用标志调用GetListing()方法FtpListOption.Recursive,然后“手动”创建每个目录,最后调用Download()方法,它返回一个流。

不过,有没有更好的方法?

0 投票
1 回答
397 浏览

c# - fluentftp上传目录跳过子文件夹

我使用 fluentftp 库将文件夹上传到 ftp。我如何跳过目录的子文件夹。

0 投票
1 回答
543 浏览

ubuntu - 使用 Ubuntu 的 FluentFTP 连接到 FTP 服务器时出现问题

我正在使用此代码尝试建立与 Windows FTP 服务的 FTP 连接

在 Windows 机器中,连接已正确建立,但在我的 Ubuntu 机器上无法建立连接,我总是收到错误消息

我怎样才能使这项工作?

==============更新

我尝试了 FTPClient 的 AutoDetect 方法,但该方法没有检索到任何配置文件

AutoConnect 方法似乎也可以连接,但是当我尝试获取文件夹列表时,会出现配置文件需要 SSL 的错误

当我为客户端启用跟踪时,我在日志中得到以下输出:

0 投票
3 回答
1461 浏览

c# - 使用 FluentFTP 从 FTP 同时下载多个文件

我正在使用 FluentFTP 从 FTP https://github.com/robinrodricks/FluentFTP/wiki进行连接、下载等

我想同时从 List 下载文件。一个一个下载没有问题。

这就是我的代码的样子:

下载功能:

我如何填写清单:

这是一个一个下载它们的方法:

我尝试同时下载:

可悲的是,它在本地 url 中创建了 0kb 的空白文件,但没有下载。

我在异步编程方面没有太多经验,所以我会很高兴所有答案或一些更好的方法。

0 投票
1 回答
318 浏览

c# - 上传完成前文件上传未命中控制器并临时保存到磁盘

假设我在具有 1GB 存储和 1GB RAM 的设备上运行 .NET Core API。我想将文件从我的网站直接上传到 FTP 服务器,而不会将文件缓存在内存或磁盘中。我有这个用于下载文件的工作,因为我基本上充当代理,通过在流中打开 FTP 文件,然后将其直接流式传输到HttpContext.Request.Body.

对于上传,我想立即点击控制器。我现在可以看到它缓存到磁盘,这可能是因为我的EnableBuffering属性。我有一个<form method="post" enctype="multipart/form-data">POST 到我的 .NET Core 后端的常规程序。控制器如下所示:

启用缓冲:

上传逻辑:

如果我不启用缓冲,我会得到:

System.IO.IOException:Stream 意外结束,内容可能已被另一个组件读取。

但是,通过启用缓冲,我可以看到它说:

确保 requestBody 可以被多次读取。通常在内存中缓冲请求体;将大于 30K 字节的请求写入磁盘

所以这部分是有道理的。但是,我该如何解决这个问题?如果我在方法的第一行设置断点Upload(),然后开始上传,它会先上传文件,然后点击断点。

我可以解决这个问题,让它立即访问我的控制器并开始上传到 FTP 服务器,而不先保存到磁盘吗?

0 投票
1 回答
1077 浏览

c# - FluentFTP 上传时的零字节文件

我尝试上传文件并在 FluentFTP 的帮助下编写了以下代码:

我用我的第一个文件(UTF8 编码)进行测试,结果是一个零字节文件。没有抛出异常,所以我假设它能够验证转移。显然,传输没有正确关闭。是的,使用命令行 FTP 客户端,我可以毫无问题地传输文件。没有消息,没有错误。只是一个零字节文件。

我做错了什么?

代码中的日志如下。

0 投票
1 回答
241 浏览

c# - FluentFtp 异步方法不起作用

我正在使用 FLuentFtp 从 ftp 下载文件。如果我调用同步方法:

然后它可以工作,但异步版本即:

两者都不起作用。两者都不会引发异常,但它们不会在 2 分钟内完成,而同步版本需要 2 秒。

是不是没有可用的线程来运行这些方法,如果是这样,我该如何检查。

如果这有助于缩小范围,则 TaskState 是 WaitingForActivation。