gpt4 book ai didi

database - GitHub 是如何存储你的仓库文件的?

转载 作者:搜寻专家 更新时间:2023-10-30 19:50:48 26 4
gpt4 key购买 nike

我感觉很傻,但是我想知道GitHub和Dropbox是如何存储用户文件的,因为我有类似的问题,我需要存储用户的项目文件。

是将项目文件存放在服务器的某处,并将该位置作为数据库中的一个字段引用,还是有其他更好的方法?

谢谢。

最佳答案

GitHub 使用 Git 来存储存储库,并从他们的 Ruby 应用程序访问这些存储库。他们过去常常使用 Ruby 库 Grit 来做到这一点。 Grit 是为在 Ruby 中实现 Git 而编写的,但已被 rugged 取代。 .有其他语言的 Git 重新实现,例如 JGit用于 Java 和 Dulwich对于 Python。 This presentation提供了有关 GitHub 这些年来如何变化的一些详细信息,值得观看/浏览幻灯片。

如果你想存储 Git 存储库,你需要做的是将它们存储在一个文件系统(或其集群)上,然后在你的数据库中有一个指针指向文件系统所在的位置,然后使用像 Rugged 或 JGit 或 Dulwich 这样的库来从 Git 存储库中读取内容。

Dropbox 将文件存储在亚马逊的 S3 服务上,然后围绕它实现一些包装以确保安全等。 This paper描述了 Dropbox 使用的协议(protocol)。

您问的实际问题是如何存储用户文件。简单的答案是......在文件系统上。许多流行的 Web 框架都有插件用于用户文件上传和文件管理。 Django 有 Django-Filer例如。您在滚动自己的文件上传管理系统时遇到的困难是构建一种合理的权限方式(因此用户只能下载他们有权下载的文件),因此值得研究各种框架插件如何做到这一点.

关于database - GitHub 是如何存储你的仓库文件的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30451559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com