用于分发ZIP / JAR文件的RESTful Web服务?

时间:2012-12-01 10:46:47

标签: android web-services rest distribution package-managers

[在用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请求(“上传”)(这里可能会强制执行一些简单的身份验证/安全性,只是为了防止故意破坏)。

  4. 正如您所看到的,我只是在寻找一个简单的HTTP RESTful文件服务器(以及一些丰富的目录列表)。

    有没有人知道可以使用(或滥用......)这项任务的免费在线服务?

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

    当然,欢迎任何考虑/意见/建议。

1 个答案:

答案 0 :(得分:0)

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

http://www.pulpproject.org/

不幸的是:

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

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

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

    1. 将所有内容放在FTP可见分区上。

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

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

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

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

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

    7. 其他可能的替代方案是:

      1. Linux APT服务器端系统。可以使用/调整但是对于我们非常简单的需求来说这是一个明显的过度杀伤(而且它非常复杂)。

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