我是一家小型软件开发公司的 IT 人员。我们的软件可供通过我们的网站购买许可证的客户下载。我正在尝试寻找一种解决方案来更好地管理软件下载过程。每次发布新版本时,我们都会为各种平台和配置构建版本(总共约 50 个不同的可单独下载组件)。每个客户只能访问这些组件的一小部分。我目前正在使用一些 perl 脚本“管理”所有这些,但它相当粗糙。
我正在考虑一个 Web 应用程序,让客户可以登录并查看他们购买的可下载组件。我不需要任何花哨的东西来处理通过我们的网站购买软件或类似的东西。至少最初,对单个下载的访问将根据每个客户手动管理。我正在考虑使用项目Drupal 模块,但需要进行大量修改才能满足我们的需要。有没有更适合这个的?
答案1
为什么不Django?
一个由所有参数(构建号、文件系统位置、名称等)组成的模型,并使用内置管理员编辑和添加这些对象(或使用构建脚本以编程方式执行此操作)。扩展内置用户对象,包装一些通用视图(object_detail、object_list)以显示产品列表等。只需一个简单的连接即可显示每个用户的产品列表,该列表使用合适的 ORM 进行抽象(或者,使用 SQLAlchemy,如果您喜欢的话)。
这只是我个人对此的简单介绍。Django 的设计理念是“内置电池”,因此您会发现大多数功能(对于此应用程序,您实际上并不太关心的乏味功能)都已准备就绪。用户身份验证、管理面板等。
它是 Python,所以我不确定这是否是你的技能。但是,根据提供的信息,我认为它将是一个可靠的工具。如果你是一名全职系统管理员,我强烈建议你学习它。
答案2
您正在寻找“分发管理软件”。我认为大多数软件公司都会推出自己的系统或使用第三方服务,例如 Share It 或 Kagi。有一些免费工具,例如 WebAuth (http://bibledatabase.org/addon/sellsoft/index.htm)以及 TechSys 等付费工具(http://www.tecsys.com/solutions/distribution-management/benefits.shtml)。
有人提到任何支持数字下载的电子商务工具,这也是另一种可能性。
我认为所有解决方案(即使是付费解决方案)的问题在于,这就像试图用猎枪打死苍蝇一样。推出自己的解决方案可让您将其与构建过程紧密集成。当然,其他工具也可以结合在一起,但可能不如量身定制的工具那么好。
答案3
如果您熟悉 PHP,那么使用 codeigniter 或 Kohana 开发类似的东西将会轻而易举。
简单的解决方案是,数据库将保存所有不同的软件包和这些软件包的 URL。然后登录名或客户名称将成为软件包的一对多链接。快速创建一个下载页面,您就可以显示链接到该用户的数据包列表。
这是简单的方法。更复杂/更安全的方法就是确保 URL 只对登录的用户有效。确保 URL 对该用户保持不变是明智的做法。我不太确定如何做才能让 Web 服务器而不是 PHP 来处理传输以获得更好的性能,但总会有办法的。
答案4
您可以使用内容管理系统来控制对所购商品的访问。毕竟这就是 CMS 的用途。