为客户网站下载/文件管理软件

问题描述 投票:0回答:2

我有不同版本的软件,我想分发给客户 (B2B)。例如,一个可能是基本版本、扩展版本和试用版本。这些将是单独的 zip 文件。它们也有版本。

这些文件可供客户试用或在注册许可证后使用,不同的许可证将使他们能够访问“软件”的不同变体(它不完全是一个软件,它只是一个文件,但它不对于这个问题来说并不重要)。

将这些文件放在网络服务器上并允许受密码保护的 HTTP 访问并不理想,因为它不允许足够细粒度的权限模型,例如例如,我可能想让一个客户端访问更新或测试版,而不是另一个客户端,并且我最终会为每个版本的每个客户端创建一个单独的文件夹,这非常混乱,并且意味着大量重复文件。

我想我正在寻找一些简单的、基于网络的“下载门户”软件,我可以在其中为每个客户创建一个网络帐户。理想情况下,这将支持“发布渠道”或类似的概念,然后我可以将每个客户分配到一个发布渠道,以及除此之外的特定文件,以引导哪个客户可以访问哪些文件。我在主网站上使用自托管 WordPress,因此我认为在像

download.company.com
这样的子域上拥有这样的门户会很棒,并且最好使用 WordPress 身份验证机制。

我不想自己编写这样的软件,而且我也没有找到可以做类似事情的现有 WP 插件。我提到的是 WP,但这不是 WP 问题,我正在寻找任何(好的)解决方案 - 如果它能够使用 WP 身份验证机制,那将是一个非常有用的功能。

是否存在这样的解决方案?我最好怎么做?似乎任何向客户分发文件和/或软件的 B2B 公司都会遇到此问题。他们都开发自己的解决方案吗?

我不是 100% 确定这是否适合 StackOverflow、SuperUser、WebApps 或 Webmasters 网站,如果这里不合适,我很高兴被引导到最合适的地方。

wordpress web download software-distribution
2个回答
1
投票

您可以执行以下操作:

  • 创建一个重定向脚本页面,其中包含文件 id(或文件名或其他内容)作为参数,例如
    download.php?id=2432
    或作为 POST 值
  • 在该页面中,您可以检查用户是否已登录以及该用户是否有权下载文件,例如,您可以有一个表,其中包含包含 user_id 和 file_id 的行,如果该行存在,则用户可以下载文件
  • 使用隐藏真实网址的 php 下载
// your validation
if($isUserValid)
{
    $path = $fileName;
    $size = filesize($path);
    $fp = fopen($path, "rb");
    $content = fread($fp, $size);
    fclose($fp);

    header("Content-length: ".$size);
    header("Content-type: application/octet-stream");
    header("Content-disposition: attachment; filename="YOURFILEPATH" );
    echo $content;
}
exit();

0
投票

我个人最喜欢的,愚蠢简单又免费的是XODA https://sourceforge.net/projects/xoda/files/xoda/ 这是我们使用多年的一个愚蠢简单的“CMS”文档管理器。 我们的订阅者专用信息通过 FTP 发布到每个用户文件夹,他们只需登录并获取它们即可。

如果您正在寻找“所有这些”,请选择 OwnCloud 或 NextCloud

© www.soinside.com 2019 - 2024. All rights reserved.