问题标签 [file-transfer]
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.
algorithm - 具有奇怪要求的文件传输:容错但不重复
我需要想出一个解决复杂文件传输的方法。我可以做到这一点,但我想知道是否有人知道已经完成了我想做的 90% 的开源解决方案。
要求很奇怪。不要试图理解它们,它们是政治、领土和官僚主义的地狱般的混合物。
我控制两台服务器,每台服务器都从一组上游源中获取文件。我对来源有一些影响(但不是完全控制)。我的两台服务器收集这些文件并将新文件链接到处理目录(这有点简化)。
我的两台服务器,我们称它们为 A 和 B,现在必须将这些文件发送到下游的一对服务器。我几乎无法控制下游服务器,我们称它们为 X 和 Y。
- 文件由其文件名唯一标识。如果它有相同的文件名,它就是同一个文件。
- 文件可能无穷无尽。他们的名字包含一个时间戳。
- 服务器 A 和 B(我的服务器)通常会获得相同的文件。如果文件出现在服务器 A 上,那么它将有 98% 的可能性以相同的文件名出现在服务器 B 上。
- A 和 B 必须使用 sftp 或类似方法将他们收到的文件推送到 X 和 Y。我不允许在 X 和 Y 上安装软件。我不允许使用 shell 帐户,即使是受限制的帐户。现在它变得很奇怪:
- A 和/或 B 收到的每个文件必须由 A 或 B(但不是两者)复制一次到 X 或 Y,但不能同时复制到两者。
- 我上游的源可能包含同一文件的重复副本(这对我来说在 A/B 服务器上不是问题,他们每个人都可以跟踪他们提取的内容)。
- 必须容忍 A、B、X 或 Y 的故障(只要其伙伴仍处于活动状态)。来自 ==> A/B ==> X/Y 的文件流不能停止。
让我明白所有这一切的一点是,为了安全起见,我的本地部门希望在 A 和 B 之间复制文件,但下游接收器(不同的部门)坚持他们想要 X 和 Y 进行故障转移......但是每个文件只能复制到 A 或 B,不能同时复制(或仅在极少数情况下)。如果下游人员只管理重复文件,那将很容易(呃)。鉴于文件名可以快速识别重复,这真的不难。哦,好吧,他们不想那样做。即使 X 或 Y 失败可能会丢失一些文件。去搞清楚。
所以我正在研究一种算法来完成所有这些工作,并且我已经取得了一些进展,但是处理竞争条件、节点故障、节点重启、大多数独立的性质会有点复杂。 A 和 B 等等。如果经过一个月的努力,如果一位朋友说“你为什么不直接使用 SuperOpenSourceSolution?你可以在一天之内让它工作!”我会有点不高兴。
那么......有人知道开箱即用(或几乎如此)的解决方案吗?我知道那里有通用的 MFT 解决方案,但我还没有听说他们可以做这种事情。
我看过 rsync 但我看不出它如何处理奇怪的分布。
谢谢。
c# - C# Web 应用程序文件传输
我在 asp.net 和 C# 中有一个 Web 应用程序,它必须访问远程服务器才能复制一些文件。Web 应用程序基本上部署了其他 Web 应用程序。
假设 Web 应用程序在“开发”服务器上运行,需要与“生产”服务器交互。从用户的角度来看,它们都是远程机器。他在浏览器上访问应用程序(在“开发”机器上运行),但看不到代码和“生产”机器的访问凭证。
在某些时候,它需要将 .ascx、.aspx、.cs 文件从开发机器复制到生产机器。我希望这很清楚^___^
谁能告诉我进行文件传输的最佳方法是什么?
谢谢!!!
九月
java - 如何使用 java servlet 和 HttpURLConnection 对文件传输进行校验和
我试图保证文件传输。我想我可以用某种校验和来做到这一点。
另外,由于一些内部问题,我需要使用流媒体来完成。
我想在传输之前和之后计算摘要,但错误只会在传输结束时出现。我正在寻找某种分块校验和,如果有任何错误,请重新发送。
有什么建议吗?
谢谢!
c# - 通过网络服务传输图像的最佳方式/更快的方式
使用 C# 通过 Web 服务传输 800*600 图像的最佳方法是什么?
我正在寻找一种快速的方法。
谢谢
file-transfer - 故障连接证明文件传输协议?
我经常通过 FTP 连接进行网站开发。也就是说,我使用带有内置 FTP 窗口的代码编辑器和推/拉文件来处理它们,上传更改等。这主要是因为尝试创建本地开发服务器是不合理的,我使用无论如何,如果没有大量工作,太多的计算机就无法实用。
我的麻烦是,我们家的互联网连接并不完全……稳定。它速度快而且非常可靠,但它比我使用过的任何其他连接(它是无线 DSL)更容易出现故障,因此,断开连接的频率太高了。(在这方面,它与 AT&T 的电话通话一样可靠。)在使用 FTP 时,我发现如果它在文件传输过程中断开连接,则可能很难恢复。首先,当连接断开时,它会向服务器保存一个空白文件(这有什么用?)完全破坏了我正在处理的页面,而锦上添花的是,根据时间,vsftpd 会得到本身陷入超时,我必须先通过 SSH 登录并重新启动它,然后才能再次访问该文件。
这个过程本身是有益的,因为它教会了我在客户端建立一些数据保护技术,以防止服务器在断开的连接碰巧挂起或崩溃我的客户端时吃掉我最近的更改。总的来说,这是一个非常失败的情况,我很惊讶我能完成任何工作。
很长很长的上下文,我知道,但我的问题是:是否有一个文件传输协议旨在处理像我这样的“flakey”连接?我想,例如,尝试通过 3G 系留连接传输文件会产生相同的结果,尤其是在旅行时。似乎 FTP 和 SFTP 都依赖于持久连接,并且可以处理丢弃的数据包,但不能通过重新连接处理整个套接字的丢失。在我看来,文件传输守护进程应该能够存储与其交互的用户的状态,从而检测失败的传输并准备好在用户在合理的时间内重新连接时“恢复”。
谢谢,如果有人知道任何事情。我正在认真考虑尝试自己编写这样一个协议(例如,我已经成功地在我的页面上编写了 ajax 来处理错误的连接),但如果已经有可用的解决方案,我不想深入研究.
c# - 通过网络服务发送文件
如何通过我的网站中的 web 服务发送文件,与 c# 和 asp.net 中的 gmail 附件相同
iphone - iOS 上的 USB 文件传输
我想编写一个应用程序,将其数据存储在一个文件中,该文件可以检索并传输到用户的 PC。iOS 是否支持通过 USB 传输文件(通过我的应用程序或通过大容量存储设备类型功能)。最好,我不想为 PC 编写客户端来接收文件,并且如果可能的话,我想在用户将设备插入 PC 时提示用户有关新文件的信息。iOS 框架是否支持这些功能?
java - Java中最简单的点对多点数据分发库/框架
我在一个中央数据库中有一个表,它不断地附加到。我想每隔几分钟批量处理这些附加,并将它们发送到一堆“从”服务器。反过来,这些服务器将处理该数据,然后将其丢弃(想想分布式仓库)。每个“从属”服务器都需要不同的数据子集,并且我可以使用一个自然的分区键。
基本上,我需要最终保持一致:每批数据最终都将交付给每个“从属”服务器(可靠性),即使“从属”在该批次准备好交付时已关闭(耐用性)。我不在乎批次的交付顺序。
我考虑过的可能解决方案,
- MySQL 复制不符合我的要求,因为我必须在每台服务器上复制整个表。
- ETL & ESB 产品太臃肿了,我不做任何数据处理。
- 普通的 JMS,我可以使用,但我正在寻找更简单的东西
- JGroups 很有趣,但是离开该组的成员一旦重新加入就不会收到消息。
- 跨服务器推送文件和确认文件:可以,但我不知道任何框架,所以需要自己编写。
注意:这个问题是关于如何将数据从中央服务器移动到其他 N 个具有可靠性和持久性的服务器;不是如何创建或摄取它。
(于 8 月 24 日编辑以添加耐用性要求)
vb.net - 如何从通过 LAN 连接的另一台计算机访问文件?
任何人都可以提供资源来学习通过 LAN 连接计算机并检索文件吗?
编辑:我可以像在本地机器上那样浏览文件夹吗?
c# - 使用 NetworkStream 错误地传输较大的文件大小
我正在通过 NetworkStream 传输文件,似乎当文件超过 5-10k 时,文件开始丢失数据和/或有巨大的空白间隙。
这是我所拥有的: