我正在处理的项目是在需要加入远程服务器上的单个数据库的分布式设备上记录数据。
日志无法在录制时进行流式传输(网络可能无法使用等),因此必须偶尔以笨重的0.5-1GB文本为基础的csv文件发送日志。
据我所知,这意味着由于文件大小,让Web服务以邮件请求的形式接收数据是不可能的。
到目前为止,我已经提出了这种方法:使用一些文件传输协议(ftp或类似)将文件从设备上传到服务器。设备必须找出一个唯一的文件名来执行此操作。让服务器定期检查新文件,通过将它们提交到数据库并在之后删除它们来处理它们。
这似乎是一种非常天真的方式,但实施起来很简单。
但是,在实施任何细节之前,我想避免任何陷阱。这种方法是否可扩展(更多设备,更大的文件)?实施将使用私有/公司拥有的服务器或云服务(例如Azure)完成 - 它是否适用于不同的平台?
答案 0 :(得分:0)
在Web服务器(post_max_size
和upload_max_filesize
for PHP)中为post请求设置更高的值后,您实际上也可以通过web / http执行此操作。这将允许设备无论平台如何都可以进行交互。从任何设备制作POST
请求服务器都不应该太难。一个简单的cURL请求可以完成这项工作。
FTP也是可能的。或SCP,使其更安全。
无论哪种方式,我认为这确实需要服务器上的一些应用程序才能使用数据库获取和管理这些文件。也许是一个小型Web应用程序;)
对于唯一名称,您可以使用设备的唯一ID /名称以及当前的unix时间的组合。如果你愿意的话,你甚至可以随后哈希(md5 / sh1)。