我正在寻找一种有效且安全的方法来无限期地存储少量用户数据(例如一行文本)。场景:一个客户端“A”通过服务器“S”异步向另一个客户端“B”发送一些数据。为简单起见,将数据视为单行文本。现在,只有当 B 要求时,此数据才会由服务器“S”传递给客户端“B” 。所以直到那个时候服务器'S'必须存储这些数据。
对于一个简单的演示,我非常粗略地实现如下:
客户端'A'使用XMLHttpRequest进行POST请求,将文本发送到'S'如下
xhr.open("POST",url+"?sentText=text"); //url points to a php file on S
xhr.send();
然后 PHP 代码将接收到的文本保存到文件中,如下所示:
<?php
$selected = $_GET["sentText"];
$writefile = "text.txt";
$fh = fopen($writefile,'w');
fwrite($fh,$selected);
fclose($fh);
?>
稍后,经过一段时间后,B 使用 BufferedInputStream 请求此文件中的文本,如下所示:
URL fileurl = new URL("url/text.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(fileurl.openStream()));
while((tmpReceived = in.readLine())!=null){
received = tmpReceived;
}
这个演示工作正常,但这只是一个演示。但是,如果这是一个拥有数百万用户的全面现实世界应用程序,我将如何实现以下内容:
服务器 S 存储文本的部分。显然,我不能将文本作为纯文本保存在文件中,因为它会侵犯我用户的隐私。当有数百万用户时,它也将是低效的。像 Dropbox 这样的商业服务是如何做到这一点的?
为了简单起见,我只需要知道如何对文本执行此操作,然后我就可以推断出其他类型。
非常感谢!