1

[在自己用 Ruby 和 Sinatra 做之前问一下……]

我必须发布/分发数百个小型 JAR 和 ZIP 文件,这些文件将被 Android 应用程序用作“可免费下载的内容包”。

每个 JAR/ZIP 将包含几个图像、一个小型 SQLite DB(或一个转储......仍有待决定)和一个 XML 或 JSON 配置文件。每个文件的大小从几百 Kb 到 2 - 5 Mbs 不等。每个文件都将使用 Android 标准下载管理器下载并提取到应用程序的外部存储(SD 卡),同时保持 JAR/ZIP 文件的原始树结构。从此时起,我的应用程序将以特定于应用程序的方式处理它。

我需要一个服务器端解决方案来发布这些文件。即:实现此类服务的在线服务/存储库或服务器端可安装程序(可能是 Ruby/Sinatra/Padrino、Python/Bootle/Flask 或类似的东西。请不要使用 Java)。

所需的系统主要必须:

  1. 使用驻留在给定目录中的文件列表(即:“目录列表”)响应指向公共服务器目录 URL 的 GET 请求。拥有某种带有文件描述和其他元数据的“丰富目录列表”会非常好(公共服务,因此不需要安全/身份验证)。一个 RSS/Atom 提要可能也很适合这项任务。特别是如果 RSS/Atom 引擎能够从文件本身的清单中提取文件描述并使用它来编译目录列表。我可以容纳我的代码以符合这种文件结构。

  2. 使用文件本身(“下载”)响应指向特定文件 URL 的 GET 请求(公共服务,因此不需要安全/身份验证)。

  3. 接受将上传文件写入 URL 中指示的目录(“上传”)的 PUT 请求(此处可能应该强制执行一些简单的身份验证/安全性,以防止破坏行为)。

如您所见,我只是在寻找一个简单的 HTTP RESTful 文件服务器(加上一些丰富的目录列表)。

有谁知道可以用于(或滥用...)此类任务的免费在线服务?

有人知道(几乎)可以使用的服务器端软件解决方案吗?

当然,任何考虑/意见/建议都将受到欢迎。

4

1 回答 1

0

我能找到的最接近的东西是“纸浆”:

http://www.pulpproject.org/

很遗憾:

  1. 它只管理 RPM 文件。可以为其他类型的包开发插件,但文档仍然缺失,整个项目似乎仍在快速推进。我们很匆忙,我们没有时间对现有插件进行逆向工程,创建我们的插件并使其与系统的其余部分保持同步。

  2. 它只是提供了一个命令行界面。对开发人员来说很棒,但对我们的客户来说却很糟糕。我们需要一个 GUI,但我们没有时间开发它。

所以这里是通常的、老式的、经过验证的解决方案:

  1. 把你所有的东西放在一个 FTP 可见的分区上。

  2. 调整 Unix 权限以获得所需的公共访问级别(很可能是具有 644 权限的“root”或“ftpuser”所有权)

  3. 编写一个脚本,生成一个文件,其中包含描述其他文件内容的元数据(从文件本身或其他信息源获取元数据)。将此脚本放在 CRON 计划中(Unix“at”命令)并每小时执行一次或类似的东西。

  4. 通过匿名 FTP(或常规 FTP,根据您的需要)从客户端访问 FTP 分区

  5. 为您的客户提供Filezilla或其他 FTP 客户端的副本以上传和管理文件

  6. 交叉你的手指,希望没有人会按错按钮

其他可能的替代方案是:

  1. Linux APT 服务器端系统。可以使用/调整,但对于我们非常简单的需求(而且非常复杂)来说,这显然是一种矫枉过正。

  2. 像http://boxroomapp.com/https://github.com/codyaray/sharebox或类似的文件交换网络应用程序。可以调整以适应要求,但这需要时间。

于 2012-12-03T14:13:06.903 回答