与非技术型用户轻松共享大文件的解决scheme?

我们有一个服务器设置工作,我们希望用它来轻松地与已知的客户端交换大文件。 我们正在研究软件,以促进这一点,但有些在Google中input“大文件托pipe”给出了可疑的结果..;)

我们已经提出了以下要求,希望你们中的任何一个能够指出我们提供这种function的解决scheme,或者可以满足我们的需求。

有谁知道符合上述标准的软件? 我们已经在科学界看到了这样的一些例子,但没有我们可以直接使用。

最好的问候,蒂姆


从以下评论复制

我的ftp问题是创build用户,设置权限,部署客户端,移动文件和记住后来删除用户,文件夹,权限等等的大量开销。

我们所设想的是短期项目的多用途标记,而不是长期运行的具有适当权限的返回客户。

这听起来像一个简单的PHP脚本可能能够处理它。 虽然我不知道超时等,如果涉及到大文件。

脚本可以像下面这样工作:

  • 如果没有login提供,显示login表单
  • 根据数据库validation此login
  • 显示一个简单的文件select器
  • 将file upload到随机生成的文件夹/文件名,并告诉用户该名称

以下额外的东西将需要:

  • pipe理login数据库
  • 删除旧文件的cronjob

交换的数据文件有时会保存机密信息,因此生成的URL应该是随机的,不能公开可见。

这真是太糟了。 如果数据真的是保密的,那么您就不能仅仅信任强制隐私的URL。

那么ftp呢?

它支持身份validation,可以运行脚本删除旧数据,每个平台都可以使用,唯一的问题是select合适的客户端来告诉用户使用。

FTP将是一个不错的select,因为在服务器端,您可以设置脚本来根据需要pipe理文件。 您的客户将能够使用大多数Web浏览器甚至Windows资源pipe理器访问这些文件。 你可以用密码来保护你的ftp文件夹,这样可以提供一些安全性,但是文件传输将会很清晰。 而且,许多企业环境阻止FTP。 但这将是最简单和最灵活的路线。

如果您需要安全地传输文件,WebDav会提供类似的最终用户体验,但您可以通过HTTPS安全地传输文件,并且http和https不太可能被您的客户阻止。 WebDav运行在大多数Web服务器之上(Apache和IIS都有可用的插件),并且由于它实际上只允许访问文件系统,因此可以使用任何脚本或操作系统函数自动pipe理文件。

这里有一个非常基本的PHP解决scheme,应该扩展到做你真正想要的东西:

 <form enctype="multipart/form-data" method="POST"> File: <input name="file" type="file"> <input type="submit" value="Upload"> </form> <?php $directory = "/var/www/secure/files/"; $url_prefix = "http://www.mywebsite.com/secure/files/"; if(array_key_exists("file", $_FILES)) { if($_FILES["file"]["error"] > 0) { echo "Error occurred during upload: " . $_FILES["file"]["error"]; } else { # Randomly generate a filename with the correct extension $filename = $_FILES["file"]["name"]; $ext = split("[/\\.]", strtolower($filename)); $ext = $exts[count($ext)-1]; $target = $directory . rand() . "." . $ext; # Move the file to the desired directory and rename using the generated filename if(move_uploaded_file($_FILES["file"]["tmp_name"], $target)) { echo "File upload successful: " . $target; } else { echo "Error occurred while storing file."; } } $dirHandler = opendir($directory); // Read the directory while($entry = readdir($dirHandler)) { $dir[] = $entry; } closedir($dirHandler); sort($dir); echo "<table>\n"; echo "<tr><th>Filename</th><th>Filetype</th><th>Filesize</th></tr>\n"; $count = count($dir); for($i = 0; $i < $count; $i++) { if (substr("$dirArray[$i]", 0, 1) != "."){ // don't list hidden files echo "<tr><td><a href=\"" . $url_prefix . $dir[$i] . "\">" . $dir[$i] . "</a></td>"; echo "<td>" . filetype($dir[$i]) . "</td>"; echo "<td>" . filesize($dir[$i]) . "</td></tr>\n"; } } echo "</table>"; } ?> 

这是一个老问题,但OP所寻找的应用程序类别称为“托pipe文件传输”。 这个领域有很多厂商。 所有这些都在Linux上运行:CrushFTP,JSCAPE,RhinoSoft(仅限CentOS / RHEL 6.x),GoAnywhere。 还有更多select…

你看过诸如drop.io或dropbox.com的服务吗? drop.io甚至为Javascript,PHP,Ruby和.Net提供了一个带有帮助库的API

任何大文件通过浏览器上传到networking都是有问题的。 在上载1Go文件时,比在上传100kb的图片时,您有更多机会出现错误。 浏览器不知道他们有能力处理上传重试。

所以,如果你想build立一个强大的,易于使用的解决scheme,我绝对认为你将需要在客户PC上的一个胖客户端。 这可能是一个Java小程序,一个FTP客户端,一个通用的下载程序…

一个通用的FTP客户端可能是一个相当简单的解决scheme。 用户pipe理可能很容易使用几个脚本在你的FTP服务器上自动执行。

对不起,我没有一个适当的解决scheme,只是一些想法…