【发布时间】:2013-09-11 12:26:06
【问题描述】:
环境:
门户:带有 MySQL 的 ASP.NET
Web 服务:ASP.NET Web 服务
要求:
- 管理员将通过我的网站上传更新版本的 APK 应用
- 平板会调用web service方法来查找最新的APK 版本
- 如果找到最新的 APK, 平板电脑应安装最新的 APK 并继续进行 别的 继续。
对于上述要求,我有 2 个解决方案。
解决方案1: - 将上传的 APK 存储到数据库中的字节 - 将编码(base64)字节发送到平板电脑 - 表将解码字节并转换为 .apk 文件
解决方案2: - 将上传的文件保存到驱动器 - 将文件 URL(例如,http:///service/apkfile)发送到平板电脑以下载 APK
我认为解决方案 1 是完美的,并且正在尝试实施,但在将字节转换为平板电脑端的 .apk 文件时,我们遇到了“解析错误”。因为 C# base64 的范围是 0-255,但另一端 Andoid App Base64 的范围是 -127 到 128。 这样我就会收到错误消息。
现在,我需要以下问题的答案。 1. 哪些解决方案是完美的,或者我需要继续改进? 2.如果解决方案1没问题,那么如何解决这个问题?
【问题讨论】:
-
我会使用服务器文件系统来存储 APK,并将文件系统路径存储在您的数据库中。字节的签名应该不是问题。我相信您在解码步骤中做错了什么,或者您的服务器可能没有正确打印 Base64 字符串。您也可以让您的服务器以二进制形式提供 APK,而忽略 Base64 编码步骤。不要忘记设置正确的 mime 类型。
-
@NobuGames 移动数据库的原因是通过服务器文件系统更安全可靠(我认为)。在服务器文件系统中可能会删除文件或损坏文件。
-
您应该将文件系统视为一个非常优化的高性能文件数据库。使用数据库存储文件只会增加额外的复杂性,并在下载期间占用宝贵的服务器资源。我同意使用数据库可以将所有内容集中在一个地方。这可以使备份更容易。但是说文件系统中的文件可以被删除或损坏是一个有争议的问题。不要忘记您的数据库也存储在文件系统中,并且也可能被损坏。可以通过适当的权限处理意外删除APK文件。
-
感谢@NobuGames 提供有效积分以实施解决方案2
标签: c# android asp.net web-services apk