我正在研究纯在Golang的后端架构。我有一个API,用于将文件上传到golang服务器,然后将文件传输到云存储(从golang服务器本身)。现在,我希望这两个传输都是独立的,这样,最终用户就不必在上传文件后等待响应。
End User -> Golang Server ->[Concurrency/Parallelism] -> Cloud Storage
现在,我想到了两种方法:
一旦用户完成上传并将文件传输到云,就创建一个goroutine。
将文件处理程序插入队列中,另一个进程将读取该队列并将文件传输到云存储(多个生产者-单一消费者模型)。
我发现了使
我想做一个网站,让用户上传文件到云为基础的web服务器。但我不希望用户每次更改时都上传完整的文件。我知道github通过让用户在windows中安装git来实现这一点。另外,我不想强迫用户在他们的系统上安装git。
如何将版本控制系统作为拖放解决方案放到我的网站上?
让我在我的网站上说,一个用户已经有一个文件'x'(130kb)在他的回购中,他在他的系统中对'x'(now its 150kb)进行修改,并将它拖放到我的网站上,我如何确保只有20 it (不是确切的20 it,我的意思是更改)被上传到我的服务器上。
也许像javascript中的轻量级git替代品