【问题标题】:Uploading large files to server上传大文件到服务器
【发布时间】:2018-03-13 09:04:47
【问题描述】:

我正在处理的项目记录分布式设备上的数据,这些数据需要加入远程服务器上的单个数据库中。

日志在记录时无法流式传输(网络可能不可用等),因此它们必须偶尔以基于 0.5-1GB 文本的大容量 csv 文件发送。

据我了解,这意味着由于文件大小的原因,让 Web 服务以发布请求的形式接收数据是不可能的。

到目前为止,我提出了这种方法:使用一些文件传输协议(ftp 或类似协议)将文件从设备上传到服务器。设备必须找出一个唯一的文件名才能做到这一点。让服务器定期检查新文件,通过将它们提交到数据库然后删除它们来处理它们。

这似乎是一种非常幼稚的方法,但实现起来很简单。

但是,在实施任何细节之前,我想避免任何陷阱。这种方法是否可扩展(更多设备、更大文件)?实施将使用私有/公司拥有的服务器或云服务(例如 Azure)来完成 - 它适用于不同的平台吗?

【问题讨论】:

    标签: web-services server ftp


    【解决方案1】:

    实际上,您也可以通过 web/http 执行此操作,在 Web 服务器中为发布请求设置更高的值之后(post_max_sizeupload_max_filesize 用于 PHP)。这将允许设备在任何平台上进行交互。从任何设备创建POST 请求服务器应该不会太难。一个简单的 cURL 请求就可以完成这项工作。 FTP也是可能的。或者 SCP,让它更安全。

    无论哪种方式,我认为这确实需要服务器上的一些应用程序才能使用数据库获取和管理这些文件。也许是一个小型 Web 应用程序? ;)

    至于唯一名称,您可以使用设备的唯一 ID/名称与当前 unix 时间的组合。如果你愿意,你甚至可以在之后散列这个(md5/sh1)。

    【讨论】:

      猜你喜欢
      • 2011-11-16
      • 1970-01-01
      • 2010-10-15
      • 2011-01-27
      • 2020-09-22
      • 2017-04-05
      • 1970-01-01
      相关资源
      最近更新 更多